信息学奥赛一本通(1209:分数求和)
生活随笔
收集整理的這篇文章主要介紹了
信息学奥赛一本通(1209:分数求和)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1209:分數求和
時間限制: 1000 ms ??? ??? 內存限制: 65536 KB
提交數: 7869 ??? 通過數: 4262
【題目描述】
輸入nn個分數并對他們求和,并用最簡形式表示。所謂最簡形式是指:分子分母的最大公約數為11;若最終結果的分母為11,則直接用整數表示。
如:5/6、10/3 均是最簡形式,而 3/6 需要化簡為 1/2 , 3/1 需要化簡為3。
分子和分母均不為0,也不為負數。
【輸入】
第一行是一個整數n,表示分數個數,1≤n≤10;
接下來n行,每行一個分數,用"p/q"的形式表示,不含空格,p,q均不超過10。
【輸出】
輸出只有一行,即最終結果的最簡形式。若為分數,用 "p/q" 的形式表示。
【輸入樣例】
2 1/2 1/3【輸出樣例】
5/6【分析】
? ? ? ? 找出最大公約數,能約則約。
【參考代碼】
#include <stdio.h> int gcd(int a,int b) {if(a%b==0)return b;elsereturn gcd(b,a%b); } int main() {int n,m,i,a,b,c,d;scanf("%d%d/%d",&n,&a,&b);for(i=2;i<=n;i++){scanf("%d/%d",&c,&d);m=b*d/gcd(b,d);a*=m/b, b=m;a+=c*(m/d);}m=gcd(a,b);a/=m, b/=m;if(b==1)printf("%d\n",a);elseprintf("%d/%d\n",a,b);return 0; }http://ybt.ssoier.cn:8088/problem_show.php?pid=1209
總結
以上是生活随笔為你收集整理的信息学奥赛一本通(1209:分数求和)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息学奥赛一本通(2023:【例4.8】
- 下一篇: 信息学奥赛一本通(1108:向量点积计算