60分求救
查看原帖
60分求救
836593
qiiie_yyy楼主2023/4/28 23:15

我用的方法是把三角函数拆成分子和分母(变量fz和fm)

然后用余弦定理求余弦值(没算出来,只得到了余弦分子和分母)然后再算的正弦值

然后约分(有非1公约数就约,判断(变量pd)为1,如果一轮循环都找不到公约数证明已经最简,pd为0)

大概就这思路

#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
int main(){
	int a[4];
	for(int i=0;i<3;i++){
		scanf("%d",&a[i]);
	}
	sort(a,a+3);//排序
	int fz,fm;
	fz=pow(a[1],2)+pow(a[2],2)-pow(a[0],2);//余弦定理
	fm=2*a[1]*a[2];
	fz=pow(fm,2)-pow(fz,2);//改正弦分子值
	fz=sqrt(fz);
	for(int i=0;i<=100;i++){//约分
		int pd=0;
		for(int j=2;j<min(fz,fm);j++){
			if(fm%j==0&&fz%j==0){
				fm/=j;
				fz/=j;
				pd=1;
			}
		}
		if(pd==0){
			printf("%d/%d",fz,fm);
			return 0;
		}
	}
}

前三个都AC 后面俩WA

帮帮!谢谢!!

2023/4/28 23:15
加载中...