此题摘自<<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);
}
}
}