一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
2016-06-07 21:15
337 查看
谭浩强教授版《C程序设计》(第二版)P120 6.9 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
0.097656
看过《C程序设计题解与上机指导》(第二版)后,发现我的方法误差较大。书中的程序大概是这样的:
0.097656
谭教授的算法是把:“触地后”到“下一次触地”做为一个循环,比如第一次触地到第二次触地,第一次触地是100m落下后,要反弹50米,到最高点,然后从最高点落下又是50m,第二次触地。两次触地间的路程是100m。
#include<stdio.h> int main() { float h=100,s=0; int i; for(i=1;i<=10;i++) { s=s+h+h/2;printf("第%d次s=%f\n",i,s); h=h/2; } printf("第10次落地时,共经过%f米。\n",s); printf("第10次反弹%f米。\n",h); return 0; }299.707031
0.097656
看过《C程序设计题解与上机指导》(第二版)后,发现我的方法误差较大。书中的程序大概是这样的:
#include<stdio.h> int main() { float s=100,h=50; int i; for(i=2;i<=10;i++) { s=s+2*h;printf("第%d次通过的路程为:%f\n",i,s); h=h/2; } printf("%f %f",s,h); return 0; }299.609375
0.097656
谭教授的算法是把:“触地后”到“下一次触地”做为一个循环,比如第一次触地到第二次触地,第一次触地是100m落下后,要反弹50米,到最高点,然后从最高点落下又是50m,第二次触地。两次触地间的路程是100m。
相关文章推荐
- map2Xml
- LaTeX教程文档
- ajaxfileupload 控件IE9 上传变下载JSON问题
- C/C++ 虚函数
- leetcode-java-5. Longest Palindromic Substring
- 金士顿U盘,群联PS2251-60主控,量产还原教程
- [6.1] 吸引力法则
- 校赛 凑硬币
- spark sql之访问 hive 和 MySQL
- Sublime Text 3 快捷键总结
- rgbdslam v2安装方法
- 操作系统-进程与线程笔记
- 03.Java 多线程 - synchronized
- Java File类总结和FileUtils类
- LaTeX技巧如何拆分源文件并且分别编译
- mysql命令行登录与杀死连接
- C/C++ 重载+运算符重载加号 实现矩阵相加
- Trendalyzer is an information visualization software
- Trendalyzer is an information visualization software
- centos7 加入自启动服务的方法 以jexus为例