zhen6


私信TA

用户名:zhen6

访问量:15566

签 名:

等  级
排  名 288
经  验 5677
参赛次数 0
文章发表 109
年  龄 0
在职情况 学生
学  校 南昌工程学院
专  业

  自我简介:

解题思路:    数学思路,先算再写代码。(好习惯!!!)

注意事项:    第一问很简单,直接1/2的n次方就行;第二问有点小复杂,如果记号选错了的话很容易得出差那么一点点的答案,就很烦。   

以落地为记号,第一次落地,第二次落地.......第n次落地。第一次落地向下走了M,这算第一次落地,也就是说不算反弹的那M/2,

然后反弹的那M/2和下落的M/2算第二次落地,以此类推,可以画个图理解一下。

则可以简单明了的得到表格(方便你们理解):(都是以“落地“为记号,别搞错了!)

    向下走的路:M    M/2    M/4    M/8    M/16.......

    向上走的路:   0     M/2    M/4    M/8    M/16.......

也就是说写一个循环N次,然后累加向上和向下走的路,就能算出总路程。

由于这里M对应的是0,其余对应的都相同,所以我用简单的sun*2-M就很快得到答案。

希望能帮到小白们。

参考代码:

#include <stdio.h>

#include <math.h>

int main ()

{

    double M,N;

    int i;

    scanf("%lf %lf",&M,&N);

    double H,sum=0,t=M;

    for(i=0;i<N;i++)

    {

        sum+=t;

        t=(1.0/2.0)*t;

    }

    H=pow(1.0/2.0,N)*M;

    printf("%0.2lf %0.2lf",H,sum*2-M);

    return 0;

 } 


 

0.0分

0 人评分

  评论区

  • «
  • »