高中数学 算法初步题 求秒

2024-12-03 11:12:47
推荐回答(4个)
回答(1):

就是个等比数列呗,
第一问,等比数列求和,设落地次数为n,推出L=200*[1-(1/2)^n],(n>=1,n属于整数)其中题目里是n=10的情况,所以把10带到式子里就Ok了,
第二问,等比数列求其中某一项,设弹起次数为n,推出通项公式是h=50*(1/2)^n-1,(n>=1,n属于整数),同样的,把n=10带入就好了
第三问,等比数列求和,不过稍微有点特殊,得把上去和下来的分别求和再加起来,设弹起数为n,算完应该是这个S=100*[2-(1/2)^n],(n>=1,n属于整数),弹起了几次就把几带进去,就能得到全程长度了。

回答(2):

我用c++实现的
#include
using std::cout;
using std::endl;
class Freefall
{
public:
Freefall(double x=0,int y=0):height(x),time(y){}
void get_result();
void view();
private:
double height;
int time;
};
void Freefall::view()
{
cout<cout<}
void Freefall::get_result()
{
int i=0;
double S_total=0,S_down=0,S_recent=0,N_time=0;
S_recent=height;
N_time=(time-1)*2+1;
for(i=0;i!=N_time;++i)
{
S_total+=S_recent;
if(i%2==0)
{
S_down+=S_recent;
S_recent=S_recent/2;
}
}
cout<cout<cout<}
int main()
{
Freefall T(100,10);
T.get_result();
return 0;
}

回答(3):

不难。

编写几个函数就OK了。

第一个函数:int getl(int h,int n) h是一开始的高度,n是下落次数,函数功能是求向下的运动共经过多少米.

int getl(int h,int n){
int m=0;
int i;
for(i=0;i m=m+h;
h=h/2;
}
return m;
}

主函数中调用h=getl(100,10);就行了

第二个函数:int geth(int h,int n)参数同上,求第二问

int geth(int h,int n){
int i;
for(i=0;i h=h/2;
}
return h;
}

第三个函数 int getm(int h,int n)参数同上,求第三问

int getm(int h,int n){
int i;
int m=h;
h=h/2;
for(i=0;i m=m+h;
h=h/2;
}
m=m-h;
return m;
}

回答(4):

这道编程题索然我不会,但看到是用递归调用来解得,好像楼下的麻烦咯吧!