就是个等比数列呗,
第一问,等比数列求和,设落地次数为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属于整数),弹起了几次就把几带进去,就能得到全程长度了。
我用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<
不难。
编写几个函数就OK了。
第一个函数:int getl(int h,int n) h是一开始的高度,n是下落次数,函数功能是求向下的运动共经过多少米.
int getl(int h,int n){
int m=0;
int i;
for(i=0;i
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
}
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
h=h/2;
}
m=m-h;
return m;
}
这道编程题索然我不会,但看到是用递归调用来解得,好像楼下的麻烦咯吧!