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