一个球从100m高度自由落下,每次落地后反跳回原高度的一半,再落下,再反弹。求它在第10次落地时,共经过多少米,第10次反弹多高。(保留2位小数)
输出:sum=299.61,h=0.10
思考:求它在第n次落地时共经过多少米,第n次反弹多高如何做?
我们首先先看第一个问题,当小球在100m落地反弹时始终是他高度的一半,当小球第一次落下时,反弹高度是50m,落下又是50m,依次循环,25,25,12.5,12.5......我们已经找到了规律,剩下的就是写循环结构了。程序如图所示:
在i=1的时候发生了第一次反弹,这时的sum是h=100本身,但是到了后面会发生变化,高度是原来反弹高度的一半但是会有两次高度是一样的,结果如下:
有了这个思路和程序我们可以思考如果这个小球反弹n次会发生什么情况,答案显而易见,只需要在上述程序的基础上输入一个整型变量n就可以了,程序如下图所示:
输出结果如下:
很容貌得出了我们需要的结果。