黑马程序员技术交流社区

标题: 一个小题 ,求更多思路 [打印本页]

作者: 新鲜感    时间: 2014-12-24 21:02
标题: 一个小题 ,求更多思路
/*
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;
再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

思路:        第一次100米高度        第一次经过100米
                第二次是 100/2米高度。经过是100+100/2*2
                第三次是100/2/2高度,经过是100+100/2*2+100/2/2*2

*/
class Demo
{
        public static void main(String[] args)
        {
                Double distance = 100.0;//定义变量 距离。
                Double high  = 100.0;//定义变量 高度。
                for (int x = 2;x<=10 ;x++)
                {
                        distance = distance + high;
                        high = high/2;                       
                }
                high = high/2;
                System.out.println("第10次落地时共经过"+distance+"米,反弹高度为"+high+"米");
        }
}

作者: 提米特    时间: 2014-12-24 22:00
感觉有点问题,距离应该是:
100+50(弹起一半)+50(从弹起高度落下)+25(弹起一半)+25(从弹起的高度落下)+12.5+12.5+.....

每次落地后弹起,再次落地,要经过2个high。

作者: 小小志    时间: 2014-12-24 22:16
  1. package itheima;

  2. public class Demo5 {

  3.         /**
  4.          * @param args
  5.          * 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?  
  6.       *上传代码的时候将运算结果截图一起提交。
  7.          */
  8.         public static void main(String[] args) {
  9.                 // TODO Auto-generated method stub
  10.                get();
  11.         }
  12.         public static void get(){
  13.                  double k=100;
  14.                  double m=100;
  15.            int j=0;
  16.          while(k>0){
  17.                  k=k/2;
  18.                  m+=k*2;
  19.                  ++j;
  20.                  if(j==10){
  21.                          System.out.println("球第"+j+"次落地时共经过"+(m-2*k)+"米");
  22.                      System.out.println("球第"+j+"次落地后反弹的高度为"+k+"米");
  23.                      break;
  24.                  }
  25.                
  26.          }
  27.                
  28.         }

  29. }
复制代码

作者: 新鲜感    时间: 2014-12-25 21:41
不错  还有更多的么
作者: 新鲜感    时间: 2014-12-27 22:11
啦啦啦啦啦啦
作者: mimawo    时间: 2014-12-28 16:45
其实如果 运算a数乘除b 正好是2的N次幂的话  运用位运算 a>>N(a除以2的N次幂)    a<<N(a乘2的N次幂)
作者: 新鲜感    时间: 2014-12-29 21:39
这个想法也不错。

作者: 新鲜感    时间: 2015-1-1 22:43
还有么i  大牛在哪里
作者: 新鲜感    时间: 2015-1-3 22:02
有人么 在来




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