不二如是 发表于 2017-5-22 06:11:42

题目17 ◉‿◉ 仿自由落体实验

本帖最后由 不二如是 于 2017-5-22 07:19 编辑

http://xxx.fishc.com/forum/201705/05/225545py2j222x5z6x55n2.png

按照提示,完成代码,秀秀你的编程能力!

不许看答案,否则打屁屁



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

源代码:
**** Hidden Message *****



○面试题索引贴●
如果喜欢,请订阅{:10_303:} :
HTML5 - 庖丁解牛 + JavaScript - 庖丁解牛

新手·ing 发表于 2017-5-22 19:58:30

a = #每个‘反弹落地’过程经过的路程,第1次只有落地(100米)
h = 100#每个‘反弹落地’过程,反弹的高度,第1次为100米
print('第1次从%s米高落地,走过%s米,之后又反弹至%s米。' % (h, a, h/2))
for i in range(2,11):#第1次已初始化,再循环9次
    a.append(h)#先计算路程,再高度减半,因为一个‘反弹落地’为2个高度
    h = h / 2
    print('第%s次从%s米高落地,共走过%s米,之后又反弹至%s米。' % (i, h, sum(a), h / 2))

gopythoner 发表于 2017-5-22 15:48:58

是这样么

def func(num):
n = 100
h = 100
while num:
    n *= 0.5
    h += n
    num -= 1
print(h,n)

func(10)

442792141 发表于 2017-8-28 19:41:30

辛苦了

yuyisuo 发表于 2017-9-6 12:06:30

window.onload = function () {

                        let distance = 0;
                        let height = 100;
                        let result = {};

                        function calcu (num, height) {

                                let distance = 0;
                                let result = {};

                                for (let i = 0; i < num; i++) {
                                        distance += height * 2;
                                        height /= 2;
                                }

                                result.distance = distance;
                                result.height = height;

                                return result;

                        }

                        result = calcu(10, 100);
                        result.distance -= height;

                        console.log('球在第10次落地式,共经过' + result.distance + '米');
                        console.log('第10次反弹' + result.height + '米');

                };

aoliann 发表于 2017-9-11 23:41:01

谢谢分享 反正我不会

潍坊的爱 发表于 2017-9-26 16:50:50

k

Wang_sh 发表于 2017-11-1 14:56:12

1

佳阳 发表于 2017-11-18 10:04:17

滴滴滴

凡凡殇清 发表于 2017-12-29 15:36:52

看看

zatio 发表于 2018-1-2 20:22:08

{:5_106:}

向一朵朵鲜花 发表于 2018-5-3 17:48:57

kankan

tang136 发表于 2018-5-19 12:43:44

仿自由落体实验

shishao723 发表于 2018-5-24 15:13:03

看看

a211827754 发表于 2018-9-24 11:48:15

emm

waitforlove 发表于 2018-9-24 21:52:20

<!DOCTYPE html>
<html>
<head>
        <title>17</title>
        <meta charset="utf-8">
        <script type="text/javascript">       
                window.onload=function(){
                        var isp=document.getElementById("isp");
                        var canvas=document.getElementById("goon");
                        var mycanvas=canvas.getContext("2d");
                        // 创建球对象
                        mycanvas.fillStyle="black";//填充颜色
                        mycanvas.strokeStyle="red";//描边颜色
                        var ball=function(x,y,r){
                                this.x=x;
                                this.y=y;
                                this.r=r;
                                this.draw=function(){//画求方法
                                        mycanvas.beginPath();
                                        mycanvas.arc(this.x,this.y,this.r,0,2*Math.PI,false);
                                        mycanvas.stroke();//描边
                                };
                        };               
                        var y=10;
                        var jul=100;
                        var ball=new ball(40,y,10);
                        mycanvas.fill();
                        var n=100;       
                        var change=true;//下落或弹起
                        var start=setInterval(function(){yid(100),50})
                        //下落运动主函数
                        function yid(h){//n=下落高度,h=下路高度减去球大小
                                if(n==0){//下落高度为0是停止
                                        clearInterval(start);
                                        isp.innerHTML="铁球总共运动:"+jul;
                                }       
                                if(change){
                                        if(ball.y<h){
                                                y++;}
                                        if(ball.y==h){
                                                if(change){                                       
                                                        n=Math.floor(n/2)
                                                        jul+=n;
                                                        change=false;}
                                        }       
                                }
                                else{
                                        if(ball.y>h-n){
                                                y--;}
                                        if(ball.y==h-n){
                                                jul+=n;
                                                change=true;
                                        }       
                                }                                       
                                mycanvas.clearRect(29,0,30,h+10);
                                ball.y=y;
                                ball.draw();
                                mycanvas.fill();       
                        }                               
                }

        </script>
</head>
<body>
        <canvas id="goon" width="" height="110"></canvas>
        <p id="isp"></p>       
</body>
</html>

凌乱大帅比 发表于 2018-10-10 14:35:09

var fall = function(){
        var height = 100;
        var heights = 0;
        for(var i=0;i<10;i++){
                height/=2;
                heights+=height;
        }
        console.log(height,heights);
}
fall();

这个值有点小六

爱喝百岁山 发表于 2018-10-11 21:26:51

本帖最后由 爱喝百岁山 于 2018-10-11 21:30 编辑

private void calHeight()
{
    int startH = 100;
    int dis = 0;
    for (int i = 0;i < 10;++i)
    {
      dis += startH;
      startH = startH / 2;
      if (9 == i)
      {
                dis = dis - startH;
      }
    }
    cout << startH << endl << dis <<endl;
}

每天进步一丢丢 发表于 2018-10-17 15:32:20

看看,学习学习

simble 发表于 2018-10-24 16:52:30

好像有问题
<!DOCTYPE html>
<html>

        <head>
                <meta charset="UTF-8">
                <title></title>
        </head>

        <body>
        </body>
        <script>
                var h = 100;
                var allH = 100;
                for(var i = 2; i < 10; i++) {
                        allH += h;
                        h = h / 2;
                }
                document.write(h + ',' + allH+'<br/>');
        </script>
</html>
页: [1] 2
查看完整版本: 题目17 ◉‿◉ 仿自由落体实验