黑马程序员技术交流社区

标题: 求球10次落下的高度 [打印本页]

作者: knockout    时间: 2015-9-6 00:35
标题: 求球10次落下的高度
  1. /*
  2. 【程序10】
  3. 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
  4. */
  5. class BallHigh
  6. {
  7.         public static void main(String[] args)
  8.         {
  9.                 double h=100,sum=0;
  10.                 for(int i=1;i<=10;i++)
  11.                 {
  12.                         if(i==1)
  13.                         {
  14.                                 h/=2;
  15.                                 sum=100;
  16.                         }
  17.                         else
  18.                         {
  19.                                 sum+=2*h;
  20.                                 h/=2;
  21.                         }
  22.                         System.out.println("第"+i+"次落地时,共经过"+sum+"米,第"+i+"次反弹高度为"+h);
  23.                 }
  24.         }
  25. }
复制代码

作者: 歌...者    时间: 2015-9-6 00:52
大哥你确定这是对的?
作者: zzh1026    时间: 2015-9-6 00:57
class Test2_High {
        public static void main(String[] args) {
                System.out.println("Hello World!");
                int high = 100,sum = 0;
                for (int i = 1;i <= 10  ;i++ ) {
                        sum = sum + high;
                        high = high / 2;
                        sum = sum + high;
                }
                System.out.println("10次以后小球的高度为:" + high + ", 10次以后小球运行的距离为:" + sum);
        }
}


作者: sansu    时间: 2015-9-6 22:07
/*
03.题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
思路:第一次  100/2
         第二次  50/2=100/2/2
         第三次  25/2=100/2/2/2
         第10次=100/(2^10)   100 除以 2的第10次方   
       在每次累加
*/      
public static void main(String[] args){
            for(int  a=1;a<=10;a++){
         double h=100/Math.pow(2,a);     //第10次的值     Math.pow(2,a) 求2的a次幂
        double sum=100;
        sum=sum+h;       //累加
           System.out.println(h);
           System.out.println(sum);
         
         }
}


作者: sansu    时间: 2015-9-6 22:16
/*
03.题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
思路:第一次  100/2
          第二次  50/2=100/2/2
          第三次  25/2=100/2/2/2
          第10次=100/(2^10)   100 除以 2的第10次方   
        在每次累加
*/      
public static void main(String[] args){
        double sum=100;                   //初始化
        for(int  a=1;a<=10;a++){
        double h=100/Math.pow(2,a);     //第10次的值     Math.pow(2,a) 求2的a次幂
           sum=sum+h;       //累加
         System.out.println("第10次反弹"+h+"米");
          System.out.println("共经过"+sum+"米");
        
        }
}
思路及代码实现!经调试这次是对的,
作者: 15706025762    时间: 2015-9-6 22:25
都是 大神
作者: sansu    时间: 2015-9-6 22:28
  第一次掉下去弹回来50,掉下去50  共经过多少米    高度h还应该乘以2  sum=sum+h*2;  
第10次反弹0.09765625米
共经过299.8046875米




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