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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 滔哥   /  2012-7-21 00:16  /  13766 人查看  /  196 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

这个题目,我很久以前就做过啦,就不抢分了
回复 使用道具 举报
回复看下题
回复 使用道具 举报
public class Ball {
/**
  * 1.球每次返跳回原高度一半
  * 2.除第一次外,以后每次经过的长度是本次落地后反弹高度的两倍
  * 3.使用for循环
  */
public static void main(String[] args) {
  double height = 100;//球的高度
  double sum = height;//球第一次落地的长度
  for(int i=1;i<=10;i++){
   System.out.println("第" + i + "次落地,经过长度:" + sum +"米");//第i次落地经过长度
   height=height/2;//反弹回原高度的一半
   System.out.println("第" + i + "次落地后,反弹高度=======:" + height + "米");//第i次落地反弹高度
   sum += height*2;//下一次落地经过的长度,当前经过的长度加本次反弹高度的两倍(上、下)
  }
}
}


第1次落地,经过长度:100.0米
第1次落地后,反弹高度=======:50.0米
第2次落地,经过长度:200.0米
第2次落地后,反弹高度=======:25.0米
第3次落地,经过长度:250.0米
第3次落地后,反弹高度=======:12.5米
第4次落地,经过长度:275.0米
第4次落地后,反弹高度=======:6.25米
第5次落地,经过长度:287.5米
第5次落地后,反弹高度=======:3.125米
第6次落地,经过长度:293.75米
第6次落地后,反弹高度=======:1.5625米
第7次落地,经过长度:296.875米
第7次落地后,反弹高度=======:0.78125米
第8次落地,经过长度:298.4375米
第8次落地后,反弹高度=======:0.390625米
第9次落地,经过长度:299.21875米
第9次落地后,反弹高度=======:0.1953125米
第10次落地,经过长度:299.609375米
第10次落地后,反弹高度=======:0.09765625米

评分

参与人数 1技术分 +3 收起 理由
蒋映辉 + 3

查看全部评分

回复 使用道具 举报
我试试看做不做的出,嘿嘿
回复 使用道具 举报
呵呵,我可以看看吗
回复 使用道具 举报
先看下题目
回复 使用道具 举报
回复看下
回复 使用道具 举报
class Demo
{
        public static void main(String[] args)
        {
                double hight=100;
                double sum=0;
                for(int i=0;i<10;i++)
                {
                    sum+=hight;
                        hight=hight/2;
                        if(i==9)
                                System.out.println(hight);
                        sum=sum+hight;
                }
        System.out.println(sum);
        }
}
回复 使用道具 举报
F:\黑马
回复 使用道具 举报
代码如下:
  1. /*
  2. * 需求:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,
  3. * 1、求它第十次落地时, 共经过多少米?
  4. * 2、第十次落地时,反弹多高?
  5. */
  6. public class FreeFall {
  7.         public static void main(String[] args) {
  8.                
  9.                 double totalDis = 100;        //总路程
  10.                 double Height =         100;//每次在空中的最高位的高度
  11.                 int count = 1;        //弹落的次数
  12.                 //经分析:下落的次数比弹起的次数多一次,这里定义的count是成对的弹起落下次数,即第一次下落不计在内
  13.                 while(count<10) {
  14.                         Height = Height/2;//每次弹起后的高度最大值
  15.                         System.out.println("第 " + count + " 次弹起的高度" + Height);
  16.                         totalDis = totalDis + Height*2;
  17.                         System.out.println("每次弹起落下后的路程和:" + totalDis);
  18.                         count++;//次数自增
  19.                 }
  20.         }
  21. }
复制代码
结果:

第 1 次弹起的高度50.0
每次弹起落下后的路程和:200.0
第 2 次弹起的高度25.0
每次弹起落下后的路程和:250.0
第 3 次弹起的高度12.5
每次弹起落下后的路程和:275.0
第 4 次弹起的高度6.25
每次弹起落下后的路程和:287.5
第 5 次弹起的高度3.125
每次弹起落下后的路程和:293.75
第 6 次弹起的高度1.5625
每次弹起落下后的路程和:296.875
第 7 次弹起的高度0.78125
每次弹起落下后的路程和:298.4375
第 8 次弹起的高度0.390625
每次弹起落下后的路程和:299.21875
第 9 次弹起的高度0.1953125
每次弹起落下后的路程和:299.609375

评分

参与人数 1技术分 +3 收起 理由
蒋映辉 + 3

查看全部评分

回复 使用道具 举报
本帖最后由 黑马-王言龙 于 2012-7-21 20:55 编辑

代码如下:
  1. /*
  2. * 需求:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,
  3. * 1、求它第十次落地时, 共经过多少米?
  4. * 2、第十次落地时,反弹多高?
  5. */
  6. public class FreeFall {
  7.         public static void main(String[] args) {
  8.                
  9.                 double totalDis = 100;        //总路程
  10.                 double Height =         100;//每次在空中的最高位的高度
  11.                 int count = 1;        //弹落的次数
  12.                 //经分析:下落的次数比弹起的次数多一次,这里定义的count是成对的弹起落下次数,即第一次下落不计在内
  13.                 while(count<=10) {
  14.                         Height = Height/2;//每次弹起后的高度最大值
  15.                         System.out.println("第 " + count + " 次弹起的高度" + Height);
  16.                         totalDis = totalDis + Height*2;
  17.                         System.out.println("每次弹起落下后的路程和:" + totalDis);
  18.                         count++;//次数自增
  19.                 }
  20.         System.out.println("第10次下落时,共经过:" + (totalDis-Height*2) + "米");
  21.         }
  22. }
复制代码
结果:

第 1 次弹起的高度50.0
每次弹起落下后的路程和:200.0
第 2 次弹起的高度25.0
每次弹起落下后的路程和:250.0
第 3 次弹起的高度12.5
每次弹起落下后的路程和:275.0
第 4 次弹起的高度6.25
每次弹起落下后的路程和:287.5
第 5 次弹起的高度3.125
每次弹起落下后的路程和:293.75
第 6 次弹起的高度1.5625
每次弹起落下后的路程和:296.875
第 7 次弹起的高度0.78125
每次弹起落下后的路程和:298.4375
第 8 次弹起的高度0.390625
每次弹起落下后的路程和:299.21875
第 9 次弹起的高度0.1953125
每次弹起落下后的路程和:299.609375
第 10 次弹起的高度0.09765625
每次弹起落下后的路程和:299.8046875
第10次下落时,共经过:299.609375米

评分

参与人数 1技术分 +3 收起 理由
蒋映辉 + 3

查看全部评分

回复 使用道具 举报
涛哥,弄错了距离得乘2。这回你看看吧,还能给分不了
回复 使用道具 举报
本帖最后由 刘俊佳 于 2012-7-21 21:44 编辑

定义一个总高度x,x=100;定义一个球回弹所经过的距离的变量y,球回弹的次数z
用一个for循环for(z=2;z<10;z++),第z次落地时共经过的米数:x=x+2*y;第z次的回弹
高度为y=y/2;设计代码如下:

WOZ_R8LNWM)X0JPXF@BHAG7.jpg (104.26 KB, 下载次数: 43)

WOZ_R8LNWM)X0JPXF@BHAG7.jpg

N{GR0KY{~4AL4$ZUYEALZ71.jpg (36.03 KB, 下载次数: 53)

打印结果

打印结果

评分

参与人数 1技术分 +3 收起 理由
蒋映辉 + 3

查看全部评分

回复 使用道具 举报
  1. /*
  2. 需求:一个球从100米高空落下,每次调回原来一半高度,求到第10次共经过多少米?第10次反弹多高?

  3. 思路+步骤:1,开始值i=100;条件:i>0;操作:i=i/2,
  4. 2,double sum = i+1/2*i ;int count++ ;
  5. 3,if(count == 10) s.o.p sum;s.o.p i/2;

  6. */

  7. public class Ball3
  8. {
  9.       public static void main(String[] args)
  10.       {
  11.                 high();                              //调用方法

  12.        }

  13.        public static void high()
  14.       {
  15.              double sum = 0;
  16.               int count = 0;                              //记录下落次数
  17.              for(double i = 100; i>0; i /=2)
  18.              {
  19.                     sum += i+i*1/2;                    //因为每次下落球都经过了本次下落“i”和反弹“i/2”的路程
  20.                      count++;
  21.                      if(count == 10)
  22.                       {
  23.                               System.out.println("球在第10次落地时共经历:"+sum+" 米。");
  24.                               System.out.println("第10次反弹:"+(i/2)+" 米。");
  25.                               break;
  26.                        }

  27.               }

  28.         }
  29. }<IMG border=0 alt="" src="http://bbs.itheima.com/forum.php?mod=image&aid=4759&size=300x300&key=be559ee3f23dcc9c4110875ff353c15e&nocache=yes&type=fixnone" aid="attachimg_4759">
复制代码

结果.png (2.61 KB, 下载次数: 39)

结果.png

评分

参与人数 1技术分 +2 收起 理由
蒋映辉 + 2 多算了第十次以后弹起的距离

查看全部评分

回复 使用道具 举报
本帖最后由 彭超华 于 2012-7-21 21:10 编辑

今天晚上才看到题目,不知道现在做还迟不迟?
package mypackge;
public class Ziyouclass {
/*
  * 题目:一球从100米高空落下,每次落地后反弹高度是原来的一半,第10次落地后经过多少米,反弹的高度是多少?分析思路:
  * 需求:小球经过的路程(sum)小球第10次反弹的高度(h)
  * 可以通过for来实现小球反弹的次数控制,定义一个变量sum来记录小球经过的路程,定义一个初始高度m,每循环一次,m为原来的m/2,
  */
public static void main(String[] args) {
  getCourse(100, 10);
}
public static void getCourse(double h, int n) {
  double sum = h; // 小球第一次落地的路程
  for (int i = 0; i < n; i++) {
   h = h / 2;
   sum = sum + (h * 2); // h*2为小球每次反弹后到最高点再到落地的路程
   System.out.println("第" + (i + 1) + "次落地后经过:" + sum + "米."
     + "反弹高度为:" + h + "米");
  }
}
}

评分

参与人数 1技术分 +2 收起 理由
蒋映辉 + 2 多算了一个第十次以后弹起的距离....

查看全部评分

回复 使用道具 举报
看看 题目先
回复 使用道具 举报
周坤 发表于 2012-7-21 10:23
结果:
0.09765625
299.609375

什么意思?第十次弹起的距离?不就是那个0.09765625
回复 使用道具 举报
好像现在还没有关闭?试试
回复 使用道具 举报
看下题目先
回复 使用道具 举报
看看题,看看题,看看题。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马