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

UVA 10071 Back to High School Physics:匀加速運動位移計算

     編輯:C++ 入門

物理模型與數學推導

題目給出粒子在時刻 t 的速度 v,已知初速度 v₀ 與恆定加速度 a,求 2t 時刻的位移 s(2t)。

根據匀加速運動公式:

  • v = v₀ + a·t
  • s(t) = v₀·t + ½·a·t²

目標位移 s(2t) = v₀·(2t) + ½·a·(2t)² = 2v₀t + 2at²。
觀察到 v·t = (v₀ + at)·t = v₀t + at²,故 s(2t) = 2(v₀t + at²) = 2·v·t。

結論:位移直接等於 2 × v × t,無需求解 v₀、a。

輸入輸出格式

  • 輸入:多行,每行兩整數 v (-100~100) 和 t (0~200)
  • 輸出:每行一個整數 2*v*t

C++ 極簡實現

#include <iostream>
using namespace std;
int main() {
    long long v, t;
    while (cin >> v >> t) {
        cout << 2 * v * t << endl;
    }
    return 0;
}

測試樣例驗證

輸入輸出說明
0 00靜止粒子
5 121202×5×12=120
-10 5-100負速度表示反方向

核心收穫

這道題看似物理題,實則是代數簡化練習。關鍵在於識別 s(2t) = 2vt 的恆等關係,避免建立方程組求解。體現了「尋找不變量/直接關係」的解題智慧。

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