鏈接:https://ac.nowcoder.com/acm/contest/330/J
來源:牛客網
時間限制:C/C++ 1秒,其他語言2秒
空間限制:C/C++ 262144K,其他語言524288K
Special Judge, 64bit IO Format: %lld
題目描述
Applese 最近又長胖了,於是它打算減肥——練習舉重。
他在舉重的時候用兩隻手往不同方向用力,從而把槓鈴舉起來。
已知 Applese 兩隻手分別產生的力的大小,以及它們之間的夾角,試求兩力合力的大小。
輸入描述:
僅一行三個整數
f
1
,
f
2
,
a
f1,f2,a,分別表示兩隻手產生的力的大小以及它們之間的夾角。
輸出描述:
輸出一個實數表示兩力合力的大小,要求相對誤差或絕對誤差不超過
10
−
6
10−6。
嚴格來講,如果你的答案是 a,而標準答案是 b,那麼當
|
a
−
b
|
max
{
1
,
|
b
|
}
≤
10
−
6
|a−b|max{1,|b|}≤10−6 時,你的答案會被認爲是正確的。
示例1
輸入
複製
6 8 90
輸出
複製
10.0000000000
示例2
輸入
複製
10 10 60
輸出
複製
17.3205080757
備註:
1
≤
f
1
,
f
2
≤
100
1≤f1,f2≤100
0
≤
a
≤
180
思路:這題卡了半個多小時,就是因爲Math.cos方法,因爲之前沒什麼瞭解,現在才知道輸入的數居然是弧度,而不是角度,搞得慢了別人超多時間。
AC代碼:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double f1=sc.nextDouble();
double f2=sc.nextDouble();
double a=sc.nextDouble();
if(a==0)
System.out.println(f1+f2);
else if(a==180)
System.out.println(f2>f1?f2-f1:f1-f2);
else{
double b = Math.toRadians(a);
double temp=f1*f1+f2*f2+2*f1*f2*Math.cos(b);
System.out.printf("%.10f",Math.sqrt(temp));
}
sc.close();
}
}