看上去很简单,也确实很简单,主要是似乎要保留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

Applese 的减肥计划

相关文章: