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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张跃峰 中级黑马   /  2015-3-26 10:31  /  1771 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一个铁球从100米落下每次反弹一半的距离,问它弹10次共经过多少米,第十次是多少米?

15 个回复

倒序浏览
for和为while循环可以轻松解决!
回复 使用道具 举报
jiangwenjun 发表于 2015-3-26 10:34
for和为while循环可以轻松解决!

可是我想知道怎么分析这个问题 我用for试过了结果不对呀
回复 使用道具 举报
定义一个返回类型为int方法
现在成员标量上设定总高度值和总次数  int x =100,y=1;
for(x=100;y>10;y++)
{
    x = x/2;
}
return x;

在主方法中打印一个方法!
回复 使用道具 举报
写一下就知道了
回复 使用道具 举报
好像是阳哥出的题
回复 使用道具 举报
这题搞不懂的,不是java的问题,是数学的问题
回复 使用道具 举报
跟叠纸的类似
回复 使用道具 举报
谢鸿 中级黑马 2015-3-26 19:24:30
9#
代码难敲啊!!!
回复 使用道具 举报
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);
         
}
回复 使用道具 举报
楼上正解!!
回复 使用道具 举报
linliner 发表于 2015-3-26 20:45
public static void main(String[] args)
{
         double s=0;

这个不对,不信你自己用计算器算一下跟你这个程序出来的答案。
回复 使用道具 举报
fantacyleo 发表于 2015-3-26 13:57
这题搞不懂的,不是java的问题,是数学的问题

是啊,一开始我以为是代码难,后来我才发现,其实是思想的问题,怎么把这个题目理解透彻才是重点啊。
回复 使用道具 举报
DxxD 发表于 2015-3-26 11:19
写一下就知道了

就是因为写不出来啊,,,郁闷的要死
回复 使用道具 举报
/*
一个铁球从100米落下每次反弹一半的距离,问它弹10次共经过多少米,第十次是多少米?

思路:
        1、        需要两个变量,分别记录前十次的距离和第十次的距离。
                每次反弹一半,可能会出现小数,所以两个变量都要是double型:double sum,double h

        2、从100米落下后才开始第一次反弹,sum初始值应为100,h初始值为100,每次反弹到下次反弹,铁球运动2*h的距离
                则有sum=sum+2*h,每次反弹一半距离,则h=h/2;

       
        3、反弹十次,需要循环,即:for(int x=1;x<=10;x++)

步骤:
        1、定义两个double类型变量sum,h用来接收每次反弹的上下运动距离和高度
                赋初始值sum=100,h=100;
        2、使用for循环控制循环次数
        3、使用sum=sum+h*2,和h=h/2作为循环语句
        4、打印sum和h
*/
class  DownTest
{
        public static void main(String[] args)
        {
                double sum=100;
                double h=100;
                for (int x=1;x<=10 ;x++ )
                {
                        h=h/2;
                        sum=sum+h*2;
                }
                System.out.println("十次总距离:sum="+sum+"米");
                System.out.println("第十次的高度:h="+h+"米");

        }
}

/*
一个铁球从100米落下每次反弹一半的距离,问它弹10次共经过多少米,第十次是多少米?

思路:
        1、        需要两个变量,分别记录前十次的距离和第十次的距离。
                每次反弹一半,可能会出现小数,所以两个变量都要是double型:double sum,double h

        2、从100米落下后才开始第一次反弹,sum初始值应为100,h初始值为100,每次反弹到下次反弹,铁球运动2*h的距离
                则有sum=sum+2*h,每次反弹一半距离,则h=h/2;

       
        3、反弹十次,需要循环,即:for(int x=1;x<=10;x++)

步骤:
        1、定义两个double类型变量sum,h用来接收每次反弹的上下运动距离和高度
                赋初始值sum=100,h=100;
        2、使用for循环控制循环次数
        3、使用sum=sum+h*2,和h=h/2作为循环语句
        4、打印sum和h
*/
class  DownTest
{
        public static void main(String[] args)
        {
                double sum=100;
                double h=100;
                for (int x=1;x<=10 ;x++ )
                {
                        h=h/2;
                        sum=sum+h*2;
                }
                System.out.println("十次总距离:sum="+sum+"米");
                System.out.println("第十次的高度:h="+h+"米");

        }
}


/*
一个铁球从100米落下每次反弹一半的距离,问它弹10次共经过多少米,第十次是多少米?

思路:
        1、        需要两个变量,分别记录前十次的距离和第十次的距离。
                每次反弹一半,可能会出现小数,所以两个变量都要是double型:double sum,double h

        2、从100米落下后才开始第一次反弹,sum初始值应为100,h初始值为100,每次反弹到下次反弹,铁球运动2*h的距离
                则有sum=sum+2*h,每次反弹一半距离,则h=h/2;

       
        3、反弹十次,需要循环,即:for(int x=1;x<=10;x++)

步骤:
        1、定义两个double类型变量sum,h用来接收每次反弹的上下运动距离和高度
                赋初始值sum=100,h=100;
        2、使用for循环控制循环次数
        3、使用sum=sum+h*2,和h=h/2作为循环语句
        4、打印sum和h
*/
class  DownTest
{
        public static void main(String[] args)
        {
                double sum=100;
                double h=100;
                for (int x=1;x<=10 ;x++ )
                {
                        h=h/2;
                        sum=sum+h*2;
                }
                System.out.println("十次总距离:sum="+sum+"米");
                System.out.println("第十次的高度:h="+h+"米");

        }
}
希望对楼主有帮助,其实思路就和我们做数学题差不多,根据结果使用逆推的方式
回复 使用道具 举报
学习了,楼上几位大神。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马