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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

本帖最后由 刘福双 于 2012-7-21 01:17 编辑

pupublic class Ex10 { public static void main(String[] args)
{
         double s=0;
         double t=100;
         for(int i=1;i<=10;i++)
         {
         s+=t;
         t=t/2;
         }
         System.out.println(s);
         System.out.println(t);
         
}
}

点评

无结果,不给分  发表于 2012-7-21 01:22
回复 使用道具 举报
本帖最后由 丁二跃 于 2012-7-21 19:21 编辑
  1. public class Test {

  2.         public static void main(String[] args) {
  3.                
  4.         double h = 100;
  5.         int n =10;
  6.     System.out.println(getHeight(h, n));
  7.    System.out.println("----"+getLength(h, n));
  8. }

  9.         
  10.         static  double getHeight(double h , int n){ //初始高度  n次  返回小球高度
  11.                
  12.                 for(int i =1  ;i<=n;i++ ){
  13.                         h=h/2;
  14.                 }
  15.                
  16.                 return h;
  17.         }

  18.         static double getLength(Double h ,int n){ //初始高度  n次  返回第n 次 小球落地时 所走过的路程
  19.                  double nh = getHeight(h, n); //第 n 次 落地后小球弹起高度
  20.                  double ss =h; //初始高度
  21.                  for(;h/2 >nh;){  // 题目要求 第10次落地时 走过路程  那么从地面到 第 10次弹起的高度 这段距离不算  , 除去第一次,到第n-1 次 小球 上去    下来 是 每次走过路程是 弹起高度的2倍 (也就是上一次小球的高度)
  22.                         h = h/2;
  23.                         ss+=h*2;
  24.                  }
  25.                 return ss;
  26.         }
  27.         
  28. }
复制代码
好吧---结果:

上面 那个 就是 第10 次 弹起的 距离……… 不过昨天写程序时候 急着发 没加上 一些 输出语句

哈哈……分数终于够了

点评

没结果 不给分  发表于 2012-7-21 18:34

评分

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

查看全部评分

回复 使用道具 举报

  1. public class Fall {
  2.         public static void show(int count){
  3.                 double sum=100;
  4.                 double h=sum/2;
  5.                 while(--count>0){
  6.                         sum+=h*2;                        //上升+落下
  7.                         h/=2;                                
  8.                 }
  9.                 System.out.println(sum+"\r\n"+h);
  10.         }
  11.         public static void main(String[] args){
  12.                 show(10);
  13.         }
  14. }
复制代码
结果:

总路程:299.609375
第10次弹起高度:0.09765625

评分

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

查看全部评分

回复 使用道具 举报
本帖最后由 陈欢 于 2012-7-21 02:16 编辑

这个题比较给力哦,童靴们抢分哦{:soso_e100:}
回复 使用道具 举报

评分

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

查看全部评分

回复 使用道具 举报
本帖最后由 陈欢 于 2012-7-21 02:14 编辑

{:soso_e112:}
回复 使用道具 举报
本帖最后由 朱东方 于 2012-7-21 20:48 编辑
  1. //需求:100米落下的球,落地后跌回一半,求第10次落下时候,经过了多少米,反弹多高?
  2. 思路:1,跌回减半,跌回后高度为一个变量。
  3.               同样,球走过的路程为一变量。共两个变量。
  4.           2,求路程需要用到累加,次数在变。控制循环

  5. class Test1
  6. {
  7.         public static void main(String[] args)
  8.         {
  9.                 Qiu(100,10);
  10.         }

  11.         public static void Qiu(double q,int i)
  12.         {
  13.                 double mid = 0,sum = q;
  14.                 while(i>0)
  15.                 {
  16.                         q= q/2;  //反弹减半
  17.                         sum += 2*q; //计算距离
  18.                         i--;
  19.                 }

  20.                 System.out.println("第10次反弹"+q+"米");
  21.                 System.out.println("第10次落地时,共经过"+sum+"米");
  22.         }
  23. }

  24. 结果:第10次反弹0.09765625米
  25. 第10次落地时,共经过299.8046875米
复制代码

点评

有那么大的数字么?  发表于 2012-7-21 13:40
回复 使用道具 举报

  1. <P> class CodeTest {</P>
  2. <P>  public static void main(String[] args)
  3.    {
  4.   
  5.                 float hight=100;//高度100米
  6.                 int times=10;//反弹次数
  7.                 float bounceHight = 0;//反弹高度
  8.                 float path=0;//总路径长度
  9.                 for (int i=0;i<times;i++)
  10.                {
  11.                        bounceHight=hight/2;//每一次反弹都是落下距离的二分之一
  12.    
  13.                        path=path+hight+bounceHight;//每一次反弹到最高点经过的路径都是当次落下距离加上反弹距离
  14.    
  15.                        hight=bounceHight;//当结束一次反弹后,反弹到最高点时的距离就变成了下一次落下距离.
  16.                }
  17.    System.out.println("第十次落地时共经过::"+(path-bounceHight)+"米");// 因为第十次反弹的高度不算.所以要减掉
  18.    
  19.    System.out.println("第十次反弹高度为:"+bounceHight+"米");
  20.   
  21.    
  22.   }</P>
  23. <P>}</P>
复制代码
结果:
第十次落地时共经过::299.60938米
第十次反弹高度为:0.09765625米


评分

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

查看全部评分

回复 使用道具 举报
package Exam8;
public class ball {

static double height = 100;
static double distance = 100;

public static void main(String[] args) {
   for(int i=1; i<10; i++) {
    distance = distance + height;
    height = height / 2;
   }
  
   System.out.println("路程:" + distance);
   System.out.println("高度:" + height / 2);
}

}
路程:299.609375
高度:0.09765625

评分

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

查看全部评分

回复 使用道具 举报
本帖最后由 yufeiant 于 2012-7-21 01:51 编辑

刚开始想的有点着急了,哎,改进后的版本在下面
回复 使用道具 举报
本帖最后由 yufeiant 于 2012-7-21 02:01 编辑

/*
题目:一球从100米高度自由落下,每次罗茨后反跳回原高度的一半;在落下,求它在第十次落地式,共经过多少米?第十次反弹多高?
思路:100,100,50,50,25,25,12.5,12.5,。。。。发现每一次弹跳走过的长度都是想到用数组,把每次落又返回中走过的长度记录到数组中,这个数组的类型是
double,每一次的弹跳走过的长度,都是它的高度的二倍,所以想到直接把它所有的高度都求出来然后相加在乘以2,然后再加上开始的时候的一百,就是跳到x次后走过的长度

*/
class TestDemo
{
        public static void main(String [] args)
                {
                        getNumber(100,10);

                }
                public static void getNumber(double num,int x)
                {
                     
                        double  sum = 0;
                        double [] arr = new double[x];
                        for ( x =0;x<10 ;x++ )
                        {

                             
                                num /=2;//发现这里如果先加上那100,的话,后面就没有办法在进行乘2,了所以把乘2和加100都放到输出里边
                                arr[x] =  num;
                               //System.out.println(arr[x]);便利一下,看看是不是对

                        }
                        double height = 0;
                        for (int z = 0;z<x ;z++ )
                        {
                                height += arr[z];
                                if (z==(x-1))
                                {
                                        System.out.println(arr[z]);
                                }
                        }
                        System.out.println(height*2+num);
                }
}
刚才发现错了,惭愧啊,没有想到会犯这样的错误
把所有的便利了一下,
50.0
25.0
12.5
6.25
3.125
1.5625
0.78125
0.390625
0.1953125
0.09765625
0.09765625
299.8046875
请按任意键继续. . .



未命名.jpg (15.94 KB, 下载次数: 28)

未命名.jpg

评分

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

查看全部评分

回复 使用道具 举报
        public static void main (String [] args){
                double tall=100;
                int times =10;
                System.out.println("球从"+tall+"米下落"+times+"次共经过了"+sum(tall,times)+"米");
                System.out.println("球从"+tall+"米下落"+times+"次后弹起高度为"+height(tall,times)+"米");
        }
        //需求:定义一个方法,求一个球落地N次会共经历了多少米(反弹规则,每次落地反弹原高度的一半)
        //明确一: 有结果吗? 有,返回共经过多少米double
        //明确二: 有未知内容吗?有初始高度double,下落次数int
                public static double sum(double height,int times ){
                        double  result =height;//因为第一次下落的高度等于原始高度,从第二次起高度等于原始高度加上本次高度
                        for(int x=2;x<=times;x++){
                                height=height/2;
                                result+=height;
                        }
                        return result;
                }
                //需求:定义一个方法,求一个求落地第N次后弹起的高度(反弹规则,每次落地反弹原高度的一半)
                //明确一:有结果吗? 有,返回第N第下落后弹起的高度 double
                //明确二:有未知内容吗? 有,初始高度double,下落次数int
                public static double height(double height,int times){
                        double result =height; //未下落时高度为原始高度,每次下落弹起的高度为原来的一半
                        for(int x=1;x<=times;x++){
                                height=height/2;
                                result=height;
                        }
                        return result;
                }
}

点评

没结果 不给分  发表于 2012-7-21 18:37
回复 使用道具 举报
本帖最后由 陈欢 于 2012-7-21 02:22 编辑

做出来了 ,不知道给力不。

public class abc{
        public static void main(String[] args) {
                double num1= 100;//总高度100米
                double num2 = num1 / 2; //第一次反弹弹高度
                int i = 0;
                for (i = 2;i<=10;i ++){//设置循环
                num1 = num1 + num2 * 2; //第i次落地经过多少米
                num2 = num2 / 2;//第i次反弹的高度
                }

                System.out.println("第10次落地经过" + num1 +"米");
                System.out.println("第10次反弹" + num2 + "米");
                }

                }

b.jpg (33.65 KB, 下载次数: 70)

b.jpg

a.jpg (11.28 KB, 下载次数: 73)

a.jpg

评分

参与人数 1技术分 +3 收起 理由
蒋映辉 + 3 不好意思 看错题目了

查看全部评分

回复 使用道具 举报
  1. package ball;

  2. import java.math.BigDecimal;

  3. /**
  4. * 一球从100米高自由落下,每次落地后调回原高度的一半,球它在地19次落地时,共进过多少米 反弹多高
  5. */
  6. public class Ball {
  7.         private BigDecimal height;
  8.         private BigDecimal location;
  9.         private BigDecimal total;
  10.        
  11.         public BigDecimal getHeight() {
  12.                 return height;
  13.         }
  14.         public BigDecimal getLocation() {
  15.                 return location;
  16.         }
  17.         public void setLocation(BigDecimal location) {
  18.                 this.location = location;
  19.         }
  20.         public BigDecimal getTotal() {
  21.                 return total;
  22.         }
  23.         public void setTotal(BigDecimal total) {
  24.                 this.total = total;
  25.         }
  26.         public void setHeight(BigDecimal height) {
  27.                 this.height = height;
  28.         }
  29.        
  30.         public Ball(int num){
  31.                 BigDecimal bd=new BigDecimal(String.valueOf(num));
  32.                 this.setLocation(bd);
  33.                 this.setHeight(bd);
  34.                 this.setTotal(new BigDecimal("0"));
  35.         }
  36.        
  37.         public void floor(){
  38.                 this.setLocation(new BigDecimal("0"));
  39.                 this.setTotal(this.getTotal().add(this.getHeight().add(this.getLocation().negate())));
  40.                 rebound();
  41.         }
  42.         public void rebound(){
  43.                 this.setHeight(this.getHeight().divide(new BigDecimal("2")));
  44.                 this.setTotal(this.getTotal().add(this.getHeight().add(this.getLocation().negate())));
  45.                 this.setLocation(this.getHeight());
  46.         }

  47.        
  48.         public static void main(String[] args) {
  49.                 Ball ball=new Ball(100);
  50.                 for(int index=0;index<19;index++){
  51.                         ball.floor();
  52.                 }
  53.                 System.out.println("共进"+ball.getTotal()+"米"+"反弹"+ball.getLocation()+"米");
  54.         }

  55. }
复制代码

点评

没结果 不给分  发表于 2012-7-21 18:38
回复 使用道具 举报
kankan  会不会
回复 使用道具 举报
看看题目再说
回复 使用道具 举报
  1. package exercise;

  2. public class SeekHeight {

  3.         /**
  4.          * @author Wangbaokang
  5.          * @param args height 球每次弹起的高度;time,第几次弹起,sum,球弹起过程中一共走过的路程
  6.          */
  7.         public static void main(String[] args) {
  8.                 // TODO Auto-generated method stub
  9.                 SeekHeight(10);
  10.                
  11.         }       
  12.         public static void SeekHeight(int time){
  13.                 double sum = 0,height =100;
  14.                 for ( int i =1; i <= time ; i++) {
  15.                         height = height * 0.5;
  16.                         sum += height;
  17.                         sop("第"+i+"次跳起"+height+"米  "+"到目前为止,共跳起"+sum+"米");                               
  18.                 }
  19.         }       
  20.         public static void sop(Object obj){
  21.                 System.out.println(obj);
  22.         }

  23. }
复制代码

1.JPG (41.32 KB, 下载次数: 33)

运行截图

运行截图

点评

经过多少米错了  发表于 2012-7-21 14:06
回复 使用道具 举报
在来一瓶
回复 使用道具 举报
滔哥就是给力
回复 使用道具 举报
class Demo {
     public static void main(String[] args) {
        double h = 100,s = 100;//当一次落下的时候落下是(100M)反弹+(50M),在落下(+50M)在反弹+(25),在落下(+25)…………一直这样循环到第10次
                                                  //每次落下和反弹的值是前一次的值
        for(int i=1; i<=10; i++) {
            s = s + h;//每次反弹高度相加
           h = h / 2;//每次反弹高度是原来的一半
           }
        System.out.println("经过路程:" + s);
        System.out.println("反弹高度:" + h);
     }
}

点评

没结果 不给分.  发表于 2012-7-21 18:38
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马