看上去很简单,也确实很简单,主要是似乎要保留10位小数,10.0是错的,10.0000000000才是对的
我中间为了精确用了java的BigDecimal,不知道是不是弄麻烦了,,,趁比赛还没结束,先贴个答案,,,XD
PS:最后输出用的DecimalFormat保留10位小数
import java.math.*;
import java.text.DecimalFormat;
import java.util.*;
import java.lang.Math;
public class Main{
private static Scanner scanner;
public static void main(String[] args){
scanner = new Scanner(System.in);
String[] strings=scanner.nextLine().split(" ");
double angle=Double.parseDouble(strings[2]);
double divide=180;
angle=angle/divide;
angle*=Math.PI;
double sin_angle=Math.sin(angle);
double cos_angle=Math.cos(angle);
BigDecimal f1=new BigDecimal(strings[0]);
BigDecimal f2=new BigDecimal(strings[1]);
BigDecimal sin=new BigDecimal(String.valueOf(sin_angle));
BigDecimal cos=new BigDecimal(String.valueOf(cos_angle));
BigDecimal xBigDecimal=f1.multiply(cos).add(f2);
BigDecimal yBigDecimal=f1.multiply(sin);
BigDecimal ansBigDecimal=xBigDecimal.pow(2).add(yBigDecimal.pow(2));
double ans=Double.parseDouble(ansBigDecimal.toString());
ans=Math.sqrt(ans);
DecimalFormat decimalFormat=new DecimalFormat("0.0000000000");//保留十位小数,哈哈
System.out.println(decimalFormat.format(ans));
}
}
总而言之,又是个水题,哈哈!XD