此题摘自<<c语言范例开发大全>>
一个球从100米的高度自由落下,每次落地后反跳回原高度的一半再落下,求他在第10次落地的时候,共经过多少钱。
1.已知要点:第一次落下时候经过的距离。
2.上次的落下距离跟下一次的落下距离有一定关系。
package com.jue.falldown;
public class TestFallDown {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("high: " + getDistance(10));
}
private static double getHeight(int index) {
if (index == 1) {
return 100;
}
return getHeight(index - 1) / 2;
}
static double getDistance(int index) {
if (index == 1) {
return getHeight(1);
} else {
return 2 * getHeight(index) + getDistance(index - 1);
}
}
}
本文介绍了如何使用C语言解决一个实际问题:计算一个球从100米高度自由落下,每次落地后反跳回原高度一半再落下,最终在第10次落地时经过的总距离。通过递归函数获取每次落下的距离,并累加得到总距离。
162

被折叠的 条评论
为什么被折叠?



