package Demo10Bounce_Ball;
public class Bounce_Ball {
/**
* 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
*/
/*
分析:每次球弹起的高度都是前一次高度的二分之一,可以用递归的方法,即:h(n)=h(n-1)/2;
共经过的距离:除了第一次落下只算一次,后面的每次弹起到落下都会经历两个弹起高度的距离
*/
public static void main(String[] args) {
// 定义一个次数,这个次数n也可以用Scanner类让用户输入
int n = 10;
// 定义一个变量来记录球经过的距离,第一次是从100米落下,一次,从第二次开始每次的距离是弹起高度的两倍
double ways =100;
// 调用递归方法,获得第n次球弹起的高度
double height = bounce(n);
System.out.println("该球第"+n+"次弹起的高度为:"+height+"米。");
// 使用一个for循环来计算球总共经过的距离,从第二次开始算
for (int i = 2; i <= n; i++) {
ways=ways+bounce(i)*2;
}
System.out.println("该球到第"+n+"次落下总共经过了:"+ways+"米");
}
/**
* 定义一个递归方法来获取前一次反弹弹起的高度,来求第n次球弹起的高度
* @param n
* @return
*/
public static double bounce(int n){
if(n==1){
// 第一次的高度是100
return 100;
}else{
// 每次球弹起的高度都是前一次高度的一半
return bounce(n-1)/2;
}
}
}
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 这个问题,相信不少人都可以从网络上找到相对应的答案。 作者也是通过搜索网络上其他各位大神的代码,才能够顺利的编写出...
- high = 100sum_meter = 0for i in range(10):if i == 0:sum_m...
- 【蝴蝶效应】 蝴蝶效应:上个世纪70年代,美国一个名叫洛伦兹的气象学家在解释空气系统理论时说,亚马逊雨林一只蝴蝶...