<pre name="code" class="cpp">//小球落地
//假设一个球从任意高度自由落下,每次落地后反跳回原高度的一半; 再落下,
//求它在第5次落地时,共经历多少米?第5次反弹多高?
//high 为高度,sum为总路程,经过n次落地,计数i当前第几次落地
void getJourney(int high,int* sum,int n,int i);
void main(){
int high=0,n=0,i=1,sum=0,k=0;
while(1){
k=0;
cout<<"请分别输入high 和 n :";
cin>>high>>n;
sum=high;
getJourney(high,&sum,n,1);
printf("第n次落地共经过路程:%d \n",sum);
k=high/pow(2,n);
printf("第n次反弹高度为 :%d \n",k);
cout<<endl;
}
}
void getJourney(int high,int* sum,int n,int i){
if(n==i) return;
int k=high/2;
*sum =(*sum)+k;
i++;
getJourney(k,sum,n,i);
}
小球落地
最新推荐文章于 2022-04-22 21:31:42 发布