解题思路:
反弹实例 假设起始从100米处下降,则 第一次,反弹高度为50,经过100米。 第二次,反弹高度为25,经过100+50+50=200米(下降100米+弹回50米+下落50米) 第三次,反弹高度为12.5,经过100+50+50+25+25=250米 (下降100米+弹回50米+下落50米+弹回25米+下落25米) 所以利用循环构建反弹模型,sum记和
注意事项:
核心代码,求路程和 while(n--){ sum+=m/2*3; //小球每次从下落到弹起一共的路程 m=m/2; } 最后实际路程=sum-m 因为最后一次并未弹起
参考代码:
#include"iostream" #include"cstdio" using namespace std; int main(){ int n; double m,sum=0; cin>>m>>n; while(n--){ sum+=m/2*3; m=m/2; } printf("%.2lf %.2lf\n",m,sum-m); return 0; }
0.0分
13 人评分
#include<stdio.h> int main() { double M,N; scanf("%lf %lf",&M,&N); double sn=0; for(int i=0;i<N;i++){ sn=sn+M/2*3;//小球每次从下落到弹起一共的路程 M/=2; } /*由于计算的是第N次落地时共经过多少米, 所以要减掉第N次落地后弹起的距离*/ printf("%0.2lf %0.2lf",M,sn-M); return 0; }
#include<stdio.h> int main() { int i; float sum=0; float M,N,G; scanf("%f%f",&M,&N); for(i=1;i<=N;i++) { sum+=M+M/2; M=M/2; G=M; } printf("%0.2f %0.2f",G,sum-M); return 0; }
九镑十五便士 2024-03-06 20:27:38 |
你这个好懂,
#include<stdio.h> int main() { int N; float height; scanf("%f %d", &height, &N); float m=0,t=0; for(int i=1;i<=N;i++){ m=height; height=height/2; t+=height+m; } printf("%.2f %.2f",height,t-height); return 0; }
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:583 |
三角形 (C语言代码)浏览:903 |
The 3n + 1 problem (C语言代码)浏览:548 |
判定字符位置 (C语言代码)浏览:792 |
C二级辅导-等差数列 (C语言代码)浏览:808 |
简单的a+b (C语言代码)浏览:415 |
C语言程序设计教程(第三版)课后习题10.1 (C语言代码)浏览:759 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:376 |
快速排序算法1浏览:878 |
孤独的骑士 (C语言代码)浏览:1363 |