一天一个算法题-简单的-递归-计算球的落下

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

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值