我用的方法是把三角函数拆成分子和分母(变量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
帮帮!谢谢!!