题解 | #弹地小球#

弹地小球

https://www.nowcoder.com/practice/0e3301735881444d902834df9b13a74c

//一个小球,从高为H的地方下落,下落弹地之后弹起高度为下落时的一半,比如第一次弹起高度为H/2,
//如此往复,计算从小球H 高度下落到第n 次弹地往返的总路程。

#include<stdio.h>
int main() {
    int m;
    scanf("%d", &m);
    for (int i = 1; i <= m; i++) {
        int k;
        double sum, H;
        scanf("%lf%d", &H, &k);     //输入高度和落地次数
        sum = H;
        k--;   //第一次落地
        while (k > 0) {
            H = H / 2; //球的高度减半
            sum = sum + H * 2; //每次反弹路径:往+返
            k--;    //落地次数-1

        }
        printf("%.2lf\n", sum);



    }

    return 0;
}

全部评论

相关推荐

群星之怒:不是哥们,你就不好奇瘫痪三十年的老植物人是啥样的吗?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务