mysql 小球_小球落地距离计算(递归)

527a14e52e920a8a7a45b2bc211cdf87.png

计算小球轨迹:

题目:有一个小球,从100米的高度落地,每次弹起来是原来下落高度的一半,求落地十次小球走的轨迹距离。

采用递归的思想,除了第一次小球落地需要不同外,剩下的的九次小球落地的距离为,n-1次小球的距离+2*小球弹起的高度。

java 递归算法如下:

public class Snippet {

public static void main(String[] args) {

Snippet snippet = new Snippet();

float total = snippet.totalheight(10, 100);

System.out.print(total);

}

public float totalheight(int n, float lenth) {

if (n == 1) { //递归边界 当小球第一次落下 返回100 米

return 100;

}

if (n > 0) {

System.out.println(lenth);//n-1 次走的距离

return lenth + 2 * (totalheight(n - 1, lenth / 2) / 2);//n-1:每次下落n-1;因为走的是来回所以乘2,每次距离都为原来的一半。这样书写便于理解

}

return 0;

}

}

结果:

100.0

50.0

25.0

12.5

6.25

3.125

1.5625

0.78125

0.390625

10 次一共走了:299.60938

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值