黑马程序员技术交流社区

标题: 球的问题 [打印本页]

作者: 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
  1. public class Distance {


  2.              //把一次弹起和一次下落看为一个单位,比如第一次弹起s米,
  3.              //下落s米,则在第一个单位内运行了反弹高度的两倍2s.
  4.     public static float distance(int num,float s){
  5.       
  6.             //这里把num=10时看为第一次弹起,以此类推       
  7.       if(num>1)
  8.                return  distance(num-1,s/2)+2*s;// s/2表示每次落地后反跳回原高度的一半
  9.        else
  10.        {
  11.                System.out.println ("第十次弹起高度:"+s);
  12.                return 2*s;
  13.        }
  14.                    
  15.             }
  16.                    
  17.         public static void main(String[] args) {
  18.                 // TODO Auto-generated method stub
  19.                 float sum=distance(10,50);//此时没有包括第一次下落的距离
  20.                 System.out.println ("球运行的总路程为:"+(sum+100));//sum加上最初的高度100米,就是球运行总长度

  21.         }

  22. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2