1. 程式人生 > >PTA 5-24 約分最簡分式

PTA 5-24 約分最簡分式

分數可以表示為分子/分母的形式。編寫一個程式,要求使用者輸入一個分數,然後將其約分為最簡分式。最簡分式是指分子和分母不具有可以約分的成分了。如6/12可以被約分為1/2。當分子大於分母時,不需要表達為整數又分數的形式,即11/8還是11/8;而當分子分母相等時,仍然表達為1/1的分數形式。

輸入格式:

輸入在一行中給出一個分數,分子和分母中間以斜槓/分隔,如:12/34表示34分之12。分子和分母都是正整數(不包含0,如果不清楚正整數的定義的話)。

提示:scanf的格式字串中加入/,讓scanf來處理這個斜槓。

輸出格式:

在一行中輸出這個分數對應的最簡分式,格式與輸入的相同,即採用分子/分母的形式表示分數。如 5/6

表示6分之5。

輸入樣例:

60/120

輸出樣例:

1/2

主要是求最大公約數:
#include <iostream>
#include <algorithm>

using namespace std;
int gcd(int m,int n)//最大公約數
{
    if(m%n==0)
        return n;
    else
        return gcd(n,m%n);
}
int main()
{
    int m,n;
    char c;
    int g;
    cin>>m>>c>>n;
    if(m>n)
        g=gcd(m,n);
    else
        g=gcd(n,m);
    cout<<m/g<<c<<n/g;
    return 0;
}