程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 分數化簡要化簡到最簡形式

分數化簡要化簡到最簡形式

編輯:C++入門知識

/*題目描述
 孔融沒有兄弟姐妹,到了周末,就找堂兄孔明、堂姐孔茹、堂弟孔偉等7個堂兄妹來到家裡玩。
 孔融媽媽買了8個梨給孩子們吃,結果小黃狗桐桐淘氣叼走了一個,大花貓鑫鑫偷偷藏了一個。
 孔融搶過剩下的6個梨,媽媽止住他,說他要和大家平分吃。孔融不高興,說8個人怎麼分6個梨?
 媽媽說可以用分數解決這個問題。孔融學過分數,說把每個梨切8個相等的塊,每個人拿6塊就行了。
 媽媽說不用切那麼多塊,每個梨切4個相等的塊,每個人拿3塊正好。孔融糊塗了。孔明說,我來教你。
 於是孔明給孔融講起了分數的化簡。
 分數化簡要化簡到最簡形式,比如12/20可以化簡成6/10和3/5,但3/5是最簡形式;100/8可以化簡成 50 /4和 25 /2 ,
  而25/2 為最簡形式。為了降低難度,不要求將假分數(如7/2)化簡成帶分數(3 1/2)形式。
*請編寫程序幫助孔融將任意一個分數化簡成最簡形式。
*輸入
 輸入數據的第一行表示需要化簡分數的個數,從第二行開始,每行有個兩個整數m,n(1<=m,n<=10000) ,其中m表示分子,n表示分母。

*輸出
 對於每一個分數,輸出分數的化簡後的最簡形式。
*樣例輸入
 3
 8 14
 219 111
 210 35
*樣例輸出
 4/7
 73/37
 6/1
*/
#include <iostream>
using namespace std;
int g(int x,int y);//求最大公約數
int main()
{
    int i,j,a[10],b[10];
    cin>>j;
    for(i=0;i<j;i++)//輸入分子、分母
        {
            cin>>a[i];
            cin>>b[i];
        }
    for(i=0;i<j;i++) //輸出分子、分母
    {
        int t;
        t=g(a[i],b[i]);
        a[i]=a[i]/t;
        b[i]=b[i]/t;
        cout<<a[i]<<'/'<<b[i]<<endl;
    }
return 0;
}
int g(int x,int y)//求最大公約數
{
    int r;
    while(y>0)
    {
      r=x%y;
      x=y;
      y=r;
    }
return x;
}

運行結果:

 

\

說話:化簡分數其實就是求兩個數的最大公約數的問題

思考一下我們也可以求多個數的最大公約數。。


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved