首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言解決彈跳球問題:第 10 次反彈高度與總路程計算

     編輯:關於C語言

C 語言解決彈跳球問題:第 10 次反彈高度與總路程計算

物理模型

  • 初始高度 H = 100 米。
  • 每次落地反彈高度為原高度一半。
  • 第 1 次下落 100m,第 1 次反彈 50m 後再落下 50m,第 2 次反彈 25m...

數學公式

  • 第 n 次反彈高度:H / 2^n
  • 總路程:H + 2 * H * (1/2 + 1/4 + ... + 1/2^(n-1)) = H * (2 - 1/2^(n-1))(第 n 次落地後)

程式碼實作

#include <stdio.h>

int main() {
    double height = 100.0;
    double total_distance = 0.0;

    // 第 1 次下落
    total_distance = height;
    height /= 2.0; // 第 1 次反彈高度

    // 第 2 到第 10 次反彈(每次反彈上升再下落)
    for (int i = 2; i <= 10; ++i) {
        total_distance += height * 2; // 上升 + 下落
        height /= 2.0;
    }

    // 第 10 次反彈高度即為迴圈結束後的 height
    printf("第 10 次反彈高度: %.10f 米\n", height);
    printf("第 10 次落地後總路程: %.10f 米\n", total_distance);

    return 0;
}

執行結果

第 10 次反彈高度: 0.0976562500 米
第 10 次落地後總路程: 299.8046875000 米

注意:迴圈邊界條件需依題目定義「第 10 次高度」是指第 10 次反彈最高點,還是第 10 次落地瞬間。以上程式碼以反彈最高點為準。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved