舉個例子,洛谷1888題。
題目如下
題目描述
輸入一組勾股數a,b,c(a≠b≠c),用分數格式輸出其較小銳角的正弦值。(要求約分。)
輸入格式:
一行,包含三個數,即勾股數a,b,c(無大小順序)。
輸出格式:
一行,包含一個數,即較小銳角的正弦值
輸入輸出樣例
輸入樣例#1: 復制
3 5 4
輸出樣例#1: 復制
3/5
解題思路:因為要求為正弦值,所以只要得到勾股數里最小和最大的值在相除約分即可。
代碼如下
#include <iostream>
#include <algorithm> //頭文件不用說。
using namespace std;
int gcd(int a,int b)
{
return !b?a:gcd(b,a%b);//本題最為核心的地方,暴力約分
}
int main()
{
int a[3],i;
cin>>a[0]>>a[1]>>a[2];
sort(a,a+3);//sort排序(從小到達)注意sort只能排數組。
cout<<a[0]/gcd(a[0],a[2])<<'/'<<a[2]/gcd(a[0],a[2]);//約分格式並輸出。
return 0;
}
蒟蒻的第一次博客,還請大佬請教。