pta 高空坠球c语言
时间: 2023-12-10 18:04:03 浏览: 180
高空坠球是一道经典的物理题目,题目描述为:一个小球从高度为h的地方落下,每次弹起的高度为原高度的一半,求n次弹起后小球经过的总路程和最后一次弹起后反弹的高度。下面是两份C语言代码实现高空坠球问题:
引用:
```c
#include <stdio.h>
int main(){
long int n,i;
double s=0,h;
scanf("%lf %ld",&h,&n);
if(n==0){
printf("0.0 0.0");
return 0;
}//特殊情况分开
s+=h;
if(n==0){
printf("0 %d",h);
return 0;
}
for(i=1;i<=n-1;i++){
h=1.0/2*h;
s+=h*2;
}
printf("%.1f %.1f",s,h/2.0);
return 0;
}
```
引用:
```c
#include <stdio.h>
int main(){
float h; //定义高度
int n,i;
scanf("%f %d",&h,&n);
float sum=0; //初始的总距离为0
if(n==0){ //当n=0时距离和反弹高度都是0,特别注意题目要求保留一位小数!!!
printf("%.1f %.1f",0.0,0.0);
}else{
sum=h; //令总距离为h,循环从第二次开始
for(i=1;i<n;i++){
h=(1.0/2)*h; //第n-1次落地弹起的距离 (第一次)
sum=sum+2*h; // 第n次反弹前经过的总路程 (第二次)
}
h=(1.0/2)*h; //第n次落地弹起的距离
printf("%.1f %.1f",sum,h);
}
return 0;
}
```
阅读全文