首页 > 代码库 > 一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。 它在第N次落地时反弹多高?共经过多少米? 保留两位小数

一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。 它在第N次落地时反弹多高?共经过多少米? 保留两位小数

题目描述
一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。 它在第N次落地时反弹多高?共经过多少米? 保留两位小数
输入
M N
输出
它在第N次落地时反弹多高?共经过多少米? 保留两位小数,空格隔开,放在一行
样例输入
1000 5
样例输出
31.25 2875.00

代码:
#include<stdio.h>
int main()
{
    double M,sum=0;
    int N,i;
    scanf("%lf%d",&M,&N);
    sum=M;
    for(i=2;i<=N;i++)
    {
        
        M=M/2.0;
        sum=sum+M;
        if(i>1)
          sum=sum+M;
        if(i==N)
          M=M/2.0;
    }
    printf("%.2lf %.2lf\n",M,sum);
    return 0;
 }

一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。 它在第N次落地时反弹多高?共经过多少米? 保留两位小数