三角函数
题目描述
输入一组勾股数 a , b , c ( a ≠ b ≠ c ) a,b,c(a\neq b\neq c) a,b,c(a=b=c),用分数格式输出其较小锐角的正弦值。(要求约分。)
输入格式
一行,包含三个正整数,即勾股数 a , b , c a,b,c a,b,c(无大小顺序)。
输出格式
一行,包含一个分数,即较小锐角的正弦值
样例 #1
样例输入 #1
3 5 4
样例输出 #1
3/5
提示
数据保证: a , b , c a,b,c a,b,c 为正整数且 ∈ [ 1 , 1 0 9 ] \in [1,10^9] ∈[1,109]。
题解:我们首先找到最长的那条边和最短的那条边,然后就开始通分,每次通一次分就得从2重新开始,找看有没有再次能约分的,直到分子的一半还没有找到,我们就可以直接跳出循环,两个数不能相互约分了,这个时候就是我们要找的,将其输出出来就可以了!
代码如下(编译器dev,语言是C语言):
#include<stdio.h>
#include<math.h>
int a[3],i,j,min,max,temp;
int main(){
for(i = 0;i<3;i++){
scanf("%d",&a[i]);
}
for(i = 0;i<3;i++){
for(j = i+1;j<3;j++){
if(a[i]>a[j]){
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
min = a[0];
max = a[2];
for(i = 2;i<ceil(min/2);i++){
if((min%i==0)&&(max%i==0)){
min = min/i;
max = max/i;
i = 1;
continue;
}
}
printf("%d/%d",min,max);
}