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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?

6 个回复

倒序浏览
不写全过程了, 设每次高度为 i(最好double 类型) , 每次循环后 i = i / 2  ,      设全程为sum , sum = sum + 3/2* i,然后循环就是了~
回复 使用道具 举报
class Prog {
        public static void main(String[] args) {
                double sum = 0.0;
                int x = 10;
                for (int i = 1;i <= x;i++ ) {
                        sum += high(i);
                }
                double y = high(11);
                System.out.println("第"+x+"次落地时,共经过"+sum+"米");
                System.out.println("第"+x+"次反弹"+y+"米");
        }
        public static double high(int x) {
                double a = 100.0;
                for (int i = 1;i < x;i++ ) {
                        a /= 2;
                }
                return a;
        }
}
回复 使用道具 举报
谢谢了    知道了
回复 使用道具 举报
while循环
回复 使用道具 举报
小tips
落下返回为一次。
回复 使用道具 举报

class  Demo
{
        public static void main(String[] args)
        {
                double x=100;
                double sum=0;
                for (int y=1;y<=10 ;y++ )
                {
                        sum=sum+x;
                        x=x/2;
                }
                System.out.println( "第10次落地时,共经过"+sum+"米");
                System.out.println("第10次反弹"+x+"米");
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马