黑马程序员技术交流社区
标题:
球的问题
[打印本页]
作者:
lipingan0520
时间:
2013-4-14 17:10
标题:
球的问题
本帖最后由 lipingan0520 于 2013-4-15 13:10 编辑
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
可以用递归实现吗?
作者:
黄玉昆
时间:
2013-4-14 22:31
当然可以,建议你先自己试着写一下,如果哪里有不明白的,还能更有针对性的提出问题,谢谢
作者:
hdsjsql
时间:
2013-4-15 09:54
public class Distance {
//把一次弹起和一次下落看为一个单位,比如第一次弹起s米,
//下落s米,则在第一个单位内运行了反弹高度的两倍2s.
public static float distance(int num,float s){
//这里把num=10时看为第一次弹起,以此类推
if(num>1)
return distance(num-1,s/2)+2*s;// s/2表示每次落地后反跳回原高度的一半
else
{
System.out.println ("第十次弹起高度:"+s);
return 2*s;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
float sum=distance(10,50);//此时没有包括第一次下落的距离
System.out.println ("球运行的总路程为:"+(sum+100));//sum加上最初的高度100米,就是球运行总长度
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2