L3 013 非常彈的球

2021-07-30 14:52:45 字數 1414 閱讀 5677

時間限制

100 ms

記憶體限制

65536 kb

**長度限制

8000 b

判題程式

standard

作者 俞勇(上海交通大學)

剛上高一的森森為了學好物理,買了乙個「非常彈」的球。雖然說是非常彈的球,其實也就是一般的彈力球而已。森森玩了一會兒彈力球后突然想到,假如他在地上用力彈球,球最遠能彈到多遠去呢?他不太會,你能幫他解決嗎?當然為了剛學習物理的森森,我們對環境做一些簡化:

森森為你準備的公式:

動能公式:e = m * v2 / 2

牛頓力學公式:f = m * a

重力:g = m * g

其中:e - 動能,單位為「焦耳」

m - 質量,單位為「千克」

v - 速度,單位為「公尺/秒」

a - 加速度,單位為「公尺/秒平方」

g - 重力加速度

輸入格式:

輸入在一行中給出兩個整數:1 <= w <= 1000 和 1 <= p <= 100,分別表示放大100倍的小球質量、以及損失動力的百分比p。

輸出格式:

在一行輸出最遠的投擲距離,保留3位小數。

輸入樣例:

100 90
輸出樣例:
226.757

思路:實際上就是典型的物理題目,直接動能守恆推出公式即可

因為e=1/2mv^2,所以v^2=2e/m

當v分解為垂直方向的vsinθ和水平方向的vcosθ,所以水平方向的v為vsinθ,t為vcosθ/g,拋到最高點時通過的路程為s = vt = vsinθvcosθ/g,落下來同樣相同的距離,s = 2vsinθvcosθ/g因為2sinθvcosθ=sin2θ,sin2θ的最大值為1,即2θ=90°,θ=45°的時候s取得最大值~

然後根據公式化簡可得一次在空中飛行的最大距離為s=(2*e)/(m*g),計算e損失的能量,然後將每次飛行的距離s相加,知道e<1e-9,然後就可以得到答案了

#include#include#include#includeusing namespace std;

int main()

printf("%.3lf\n",s);

return 0;

}

此方法還用到了math函式,比第一種方法稍微複雜些,但也差不多。
#include#include#include#includeusing namespace std;

int main()

printf("%.3lf\n",s);

return 0;

}

L3 013 非常彈的球 (30 分

剛上高一的森森為了學好物理,買了乙個 非常彈 的球。雖然說是非常彈的球,其實也就是一般的彈力球而已。森森玩了一會兒彈力球后突然想到,假如他在地上用力彈球,球最遠能彈到多遠去呢?他不太會,你能幫他解決嗎?當然為了剛學習物理的森森,我們對環境做一些簡化 森森為你準備的公式 其中 輸入在一行中給出兩個整數...

L3 013 非常彈的球 物理知識(詳解)

l3 013 非常彈的球 30 分 剛上高一的森森為了學好物理,買了乙個 非常彈 的球。雖然說是非常彈的球,其實也就是一般的彈力球而已。森森玩了一會兒彈力球后突然想到,假如他在地上用力彈球,球最遠能彈到多遠去呢?他不太會,你能幫他解決嗎?當然為了剛學習物理的森森,我們對環境做一些簡化 森森為你準備的...

PTA 天梯賽 L3 013 非常彈的球

l3 013 非常彈的球 30分 剛上高一的森森為了學好物理,買了乙個 非常彈 的球。雖然說是非常彈的球,其實也就是一般的彈力球而已。森森玩了一會兒彈力球后突然想到,假如他在地上用力彈球,球最遠能彈到多遠去呢?他不太會,你能幫他解決嗎?當然為了剛學習物理的森森,我們對環境做一些簡化 森森為你準備的公...