zoukankan      html  css  js  c++  java
  • C语言经典算法100例-020-小球自由下落问题

    我们来看题:

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

    1。分析,假设s代表路程,h代表弹起的高度,那么我们先做出数学模型:

    s1=100;

    h1=s1/2;

    先看s2和s3的值如何求

    s2=s1+2*h1;

    s3=s2+2*h2; 其中h2=h1/2,所以有s10=s9+2*h9。按照这个思路,我们来写程序:

    2.代码:

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        int i;
        double sn=100;
        double hn=sn/2;
        for(i=2;i<=10;i++)
        {
            sn+=2*hn;
            hn/=2;
        }
        printf("Total %lf
    ",sn);
        printf("h10 is %lf
    ",hn);
        return 0;
    }
    

    这里我们只循环了9次,因为s1和h1先求出来了。因此循环中是从 s2开始算的,最终10次后的结果就是s10,而此后hn又自除了2,所以hn就是h10。

    多琢磨几遍就懂了。

    结果如下:

    Total 299.609375
    h10 is 0.097656

  • 相关阅读:
    JavaScript闭包
    JavaScript的作用域与作用域链
    运动曲线提升CSS动画效果
    设计一个应用或网站时的流程
    JavaScript 与函数式编程
    声明式编程与命令式编程
    call(),apply()和bind()
    linux-xargs
    linux -shell
    linux-awk
  • 原文地址:https://www.cnblogs.com/mrbourne/p/9959504.html
Copyright © 2011-2022 走看看