C++暴力約分(gcd).


舉個例子,洛谷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;
}

蒟蒻的第一次博客,還請大佬請教。 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM