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

伊丽莎白.大海

初级黑马

  • 黑马币:24

  • 帖子:24

  • 精华:0

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

我的答案是:共经过287.3046875米;
                第10次反弹0.09765626米
代码是:public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                double mi = 100;
                double cd = 0;
               
                for(int b = 10;b>0;b--){
                        for(int a=1;a<=mi;a++){
                                if(a==mi){
                                        cd+=mi/2;
                                        }
                        }       
                        cd+=mi;
                        mi/=2;       
                }                       
                        System.out.println("共经过"+cd+"米");
                System.out.println("第十次长度为"+mi+"米");
        }       
也不知道对不对,你们怎么算的?

10 个回复

倒序浏览
shenfuhan 来自手机 中级黑马 2016-1-14 18:14:23
沙发
run一下啦
回复 使用道具 举报
擎天柱 来自手机 中级黑马 2016-1-14 20:15:30
藤椅
学c++的时候做过,我当时用数列做的。
回复 使用道具 举报
不太理解,为什么要用循环嵌套?运行了一下你的代码,数据的确是你说的那样,就是不太明白原理
回复 使用道具 举报
shenfuhan 来自手机 中级黑马 2016-1-16 19:01:56
报纸
反正需要转圈,就要用for循环
回复 使用道具 举报
这是一个面试题吧   好难  表示做不出来   在努力的搞懂中
回复 使用道具 举报
表示心热一枚……
回复 使用道具 举报
变量名要起的见名知意
回复 使用道具 举报
应该是0.09765625吧?
回复 使用道具 举报 1 0
class Text {
        public static void main(String[] args) {
                double sum1 = 0;
                double high1 = 100;
                //下落高度
                for (int i = 0;i < 10 ;i++ ) {
                        sum1 += high1;
                        high1 /= 2;
                }
                //上升高度
                double sum2 = 0;
                double high2 = 50;
                for (int i = 1;i < 9 ;i++ ) {
                        sum2 += high2;
                        high2 /= 2;
                }
                System.out.println("总共: " + (sum1 + sum2) +" m\t第十次: " + high2/2 + " m");
        }
}
        //总共: 299.4140625 m     第十次: 0.09765625 m
回复 使用道具 举报
可以,做的不错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马