A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

新鲜感

中级黑马

  • 黑马币:41

  • 帖子:114

  • 精华:0

© 新鲜感 中级黑马   /  2014-12-24 21:02  /  987 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
题目:一球从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+"米");
        }
}

评分

参与人数 1黑马币 +3 收起 理由
杨佳名 + 3

查看全部评分

8 个回复

倒序浏览
感觉有点问题,距离应该是:
100+50(弹起一半)+50(从弹起高度落下)+25(弹起一半)+25(从弹起的高度落下)+12.5+12.5+.....

每次落地后弹起,再次落地,要经过2个high。
回复 使用道具 举报
  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. }
复制代码
回复 使用道具 举报
不错  还有更多的么
回复 使用道具 举报
啦啦啦啦啦啦
回复 使用道具 举报
其实如果 运算a数乘除b 正好是2的N次幂的话  运用位运算 a>>N(a除以2的N次幂)    a<<N(a乘2的N次幂)
回复 使用道具 举报
这个想法也不错。
回复 使用道具 举报
还有么i  大牛在哪里
回复 使用道具 举报
有人么 在来
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马