这个for循环需要计算

来源:4-5 重复重复(for循环)

2015415happy

2016-04-25 22:59

 

 一个球距离地面100米 

自由落下来,每次落地弹起高度为原来高度的一半,在落下,一次类推,第十次球弹起的高度为多少 ?整个过程,球运动了多少米?


写回答 关注

8回答

  • 大神在路上
    2016-06-11 19:44:16

    <script type="text/JavaScript">

    //初始高度100米,sum为球总运行路程;

    var h=100; 

    var sum=0;

    //理想情况会一直运动下去,这里假设弹起1000次

    for(var i=1;i<=1000;i++){

         var n=Math.pow(2,i);//n=2的i次方

            sum=300/n+sum;//

            h=0.5*h;

            document.write("第"+i+"次球弹起的高度为:"+h+"米"+"运动路程为:"+sum+"<br/><br/>")

            if(i==10){

                document.write("第10次弹起的高度为:"+ h+"米,<br/>球运动了:"+sum+"米");

                break;

                }

          }

    </script>


  • 死宅男
    2016-04-27 18:02:23

    你运行下看看,显示了每次弹起的高度和已经运行的路程;

    回复 2015415happy:<script language="javascript">

    //初始高度100米,sum为球总运行路程;

    var h=100; 

    var sum=0;

    //理想情况会一直运动下去,这里假设弹起1000次

    for(var second=1;second<=1000;second++){

            sum=1.5*h+sum;

            h=0.5*h;

            document.write("第"+second+"次球弹起的高度为:"+h+"米"+"运动路程为:"+sum+"<br/><br/>")

            if(second==10){

                document.write("第10次弹起的高度为:"+ h+"米,<br/>球运动了:"+sum+"米");

                break;

                }

          }

    </script>


  • DangCode
    2016-04-26 22:08:43

    每次反弹都是上一次高度的一一半 那10次后反弹的高度也不为零啊 20次也不为零 100此也不为零 因为99此有高度 直到无数次的时候才接近零

  • qq_神夕_0
    2016-04-26 00:16:59
    var fixedDistance = 100;
    var heightOf10TH = 0;
    var totalDistance = 0;
    for (var i = 0; i < 10; i++) {
        totalDistance += fixedDistance;
        fixedDistance /= 2;
        if(i == 9) {
            heightOf10TH = fixedDistance;
        }
    }
    document.write("球共运动了: " + (totalDistance + 100) + "米<br />");
    document.write("球在第十次弹起的高度为: " + heightOf10TH + "米<br />");
    
    正确解答 ^ 
    最后第二行的+100是计算首次降落的距离


    DangCo... 回复201541...

    你不要想当然的以为最后一次是0啊 上边不是说了么 每次减半 翻译过来就是永远不会为0米,i就是个计数器 从零开始计数 也可以从1开始计数 也可以从100计数 有什么纠结的啊 还有你的 代码if(i==9){h=m;}为什么第十次的时候你要让当前高度变成初始高度啊 怎么可能啊

    2016-04-26 22:01:04

    共 4 条回复 >

  • qq_神夕_0
    2016-04-26 00:12:04
    var fixedDistance = 100;
    var heightOf10TH = 0;
    var totalDistance = 0;
    for (var i = 0; i < 10; i++) {
        fixedDistance /= 2;
        totalDistance += fixedDistance;
        if(i == 9) {
            heightOf10TH = fixedDistance;
        }
    }
    document.write("球共运动了: " + totalDistance + "米<br />");
    document.write("球在第十次弹起的高度为: " + heightOf10TH + "米<br />");


  • 死宅男
    2016-04-26 00:06:20

    上面是试了试第二次的,下面为弹起10次的:

    <script language="javascript">

    //初始高度100米,sum为球总运行路程;

    var h=100; 

    var sum=0;

    //理想情况会一直运动下去,这里假设弹起1000次

    for(var second=1;second<=1000;second++){

            sum=1.5*h+sum;

            h=0.5*h;

            if(second==10){

                document.write("第10次弹起的高度为:"+ h+"米,<br/>球运动了:"+sum+"米");

                break;

                }

          }

    </script>


    201541...

    谢谢你的回答,我总是想着球落地时,总共运动了多少米,如果不算最后一次(第10次)落地,你的算法是正确的,也就是说球在空中。如果最后一次也落地,需要也加那么一小段路程。

    2016-04-28 17:41:31

    共 3 条回复 >

  • 死宅男
    2016-04-26 00:04:04

    <script language="javascript">

    //初始高度100米,sum为球总运行路程;

    var h=100; 

    var sum=0;

    //理想情况会一直运动下去,这里假设弹起1000次

    for(var second=1;second<=1000;second++){

            sum=1.5*h+sum;

            h=0.5*h;

            if(second==2){

                document.write("第2次弹起的高度为:"+ h+"米,<br/>球运动了:"+sum+"米");

                break;

                }

        }

    </script>


  • 普若米斯
    2016-04-25 23:45:13

    var h=100;

    for(var i=0;i<10;i++){

    h=h/2;

    }

    document.write(h);

    201541...

    谢谢,这只是算出来高度,我还是不明白i=0时;函数体是怎么运算的。

    2016-04-26 10:14:52

    共 2 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468061 学习 · 21891 问题

查看课程

相似问题