解题思路:
反弹实例 假设起始从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分
24 人评分
#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语言训练-求素数问题 (C语言代码)浏览:1509 |
DNA (C语言描述,蓝桥杯)浏览:1653 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:537 |
C二级辅导-温度转换 (C语言代码)浏览:802 |
盐水的故事 (C语言代码)浏览:1601 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:504 |
C语言程序设计教程(第三版)课后习题8.7 (C语言代码)浏览:538 |
拆分位数 (C语言代码)浏览:464 |
众数问题 (C语言代码)浏览:659 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:456 |