P1888 三角函数
三角函数
题目描述
输入一组勾股数 a,b,c(a!= b!= c),用分数格式输出其较小锐角的正弦值。(要求约分。)
输入格式
一行,包含三个正整数,即勾股数 a,b,c(无大小顺序)。
输出格式
一行,包含一个分数,即较小锐角的正弦值
样例 #1
样例输入 #1
3 5 4
样例输出 #1
3/5
提示
数据保证:a,b,c 为正整数且属于 [1,10^9]。
提交答案
#include<iostream> //c++标准输入输出流
using namespace std; //命名空间
long long maxn,minn; //分别为斜边以及最短边
long long gcd(long long,long long);
int main() //主函数
{
long long a,b,c; //由于数据出了int范围,所以用long long
cin>>a>>b>>c;
minn=a; //假设a为最小数
if(b<minn) minn=b; //一旦小于最小数,就替换
if(c<minn) minn=c; //同上
maxn=a; //道理同上,只是改为了最大数判断
if(b>maxn) maxn=b;
if(c>maxn) maxn=c;
cout<<gcd(minn,maxn)<<"/"<<gcd(maxn,minn);
return 0; //结束主函数
}
long long gcd(long long a,long long b)
{
int yue;
for(int i=a;i>=1;i--)//从高到低循环,确保求得的是最大公约数(无需判断a,b的大小)
{
if(a%i==0 && b%i==0)
//判断是否可以同时整除
{
yue=i;
break; //跳出循环
}
}
return a/yue; //返回值
/*
int aa=a,bb=b;
while(aa!=bb)
{
if(aa>bb)
{
aa=aa-bb;
}
else
{
bb=bb-aa;
}
}
return a/aa;
*/
}
/*
3 5 4
3/5
--------------------------------
Process exited after 3.275 seconds with return value 0
请按任意键继续. . .
6 10 8
3/5
--------------------------------
Process exited after 3.961 seconds with return value 0
请按任意键继续. . .
*/