一個月黑風高的上午,我正上着專業水課,無聊之際想起師兄推薦的西西里,遂打開了這個網站。
(師兄推薦的理由是上面有制服誘惑(╯‵□′)╯︵┻━┻)
那麼來看看我的第一道西(song)西(fen)裏(ti)吧
emmmmm看起來不會很難
程序要求的關鍵應該是輸入a,b,c,d,然後輸出a/b+c/d.
很自然想到對a/b+c/d進行通分,相乘,得到(a*d+c*b)/b*d
但顯然直接這樣輸出是不行的,因爲題目要求結果應是最簡分數,所以我的想法是求出分子分母的最大公約數,在讓分子分母分別除以這個約數,得到新的最簡的分子分母,如果分母爲1,則直接輸出分子。
於是便有了下面的程序
#include<stdio.h>
int suan(int a,int b)
//算最大公約數的程序
//更相減損數
{
int c;
if (a==b)
return a;
if (a<b)
b=b-a;
else
a=a-b;
c=suan(a,b);
return c;
}
int main(void)
{
int n;
scanf("%d",&n);
//所要輸入的數據的組數
int num[4*n];
//儲存數據的數組
int i;
//計數變量
for(i=0;i<4*n;i++)
{
scanf("%d",&num[i]);
//輸入所有數據
}
int z,m;//儲存未化簡的分子分母
int g;//儲存最大公約數
int a,b;//儲存最終化簡的分子分母
for(i=0;i<4*n;i=i+4)
{
z=num[0+i]*num[3+i]+num[1+i]*num[2+i];
//計算臨時分子
m=num[1+i]*num[3+i];
//計算臨時分母
g=suan(z,m);
//得到最大公約數
a=z/g;
//用最大公約數化簡分子
b=m/g;
//用最大公約數化簡分母
if(b==1)
printf("%d\n",a);
else
printf("%d/%d\n",a,b);
//輸出結果
}
return 0;
}
以上