计算碰撞后的路程和高度

已知一球从高空落下时,每次落地后反弹至原高度的四分之一再落下。编写一程序,从键盘输入整数n和m,求该球从n米的高空落下后,第m次落地时共经过的路程以及第m次落地后反弹的高度,并输出结果。

 

my code:

#include <stdio.h>
int main(){
int n,m,i;
scanf("%d%d",&n,&m);
double len = 0,height = n,distance;



for(i = 1;i <= m - 1;i++){
height *= 0.25;
len += 2 * height;

}
if(1 == m){
distance = n;
}else {
distance = len + n;
}

printf("%.2f\n%.2f",distance,height * 0.25);
return 0;
}

 

领悟:难点在于高度和路程的要求不一样,一个为碰撞前,一个为碰撞后,解决方法很简单,先写出同时的代码,再对其中一组数据倒退或者前进,即算出第m次的数据或第m+1次的数据,再对高度*1/4或使路程减去对应的碰后高度*2即可。

posted @ 2023-10-25 18:24  2B青年~  阅读(114)  评论(0)    收藏  举报