标签:turn 3.1 scanf 空格 ret include 最大 else 最简
描述
输入n个分数并对他们求和,并用最简形式表示。所谓最简形式是指:分子分母的最大公约数为1;若最终结果的分母为1,则直接用整数表示。
如: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
1 #include <cmath> 2 #include <cstdio> 3 using namespace std; 4 int main() 5 { 6 int u=0,d=1,a,b,n; 7 scanf("%d",&n); 8 while(n--) 9 { 10 scanf("%d/%d",&a,&b); 11 u=u*b+d*a; 12 d*=b; 13 } 14 for(int i=2;i<=u&&i<=d;i++) 15 { 16 if(u%i==0&&d%i==0) 17 { 18 u/=i; 19 d/=i; 20 i=1; 21 } 22 } 23 if(d==1)printf("%d",u); 24 else printf("%d/%d",u,d); 25 return 0; 26 }
标签:turn 3.1 scanf 空格 ret include 最大 else 最简
原文地址:http://www.cnblogs.com/zby-ccsygz/p/6275125.html