huangze1002 发表于 2020-7-2 13:16:31

同学要我做,自己不会求解答

求解答

405794672 发表于 2020-7-2 13:37:45

第一次落地时经过M米,第二次落地M=(M/2)*2米.第三次落地M=(M/2)*2米…………
那么可以:   int i;
                sum=M;
                for(i=1;i<N;i++)
                {
                  M=M/2;
                  sum+=2M;
                }

jackz007 发表于 2020-7-2 14:03:27

#include <stdio.h>

int main(void)
{
      int k , m , n                                                            ;
      float d , h = 0.0                                                          ;
      scanf("%d,%d" , & m , & n)                                                 ;
      if(m > 0 && n > 0) for(h = d = m , k = 1 ; k < n ; d /= 2.0 , k ++) h += d ;
      printf("%.2f\n" , h)                                                       ;
}
      编译运行实况:
D:\bin\00.Exercise\C>g++ -o ball ball.c

D:\bin\00.Exercise\C>ball
1000,5
2875.00

D:\bin\00.Exercise\C>
页: [1]
查看完整版本: 同学要我做,自己不会求解答