前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >12:分数求和

12:分数求和

作者头像
attack
发布2018-04-03 18:16:39
7990
发布2018-04-03 18:16:39
举报
文章被收录于专栏:数据结构与算法

12:分数求和

总时间限制: 1000ms 内存限制: 65536kB描述

输入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"的形式表示。样例输入

代码语言:javascript
复制
2
1/2
1/3

样例输出

代码语言:javascript
复制
5/6
代码语言:javascript
复制
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<cstring>
 5 using namespace std;
 6 long long int a[1000001];
 7 long long int b[1000001];
 8 long long int anszi=1;
 9 long long int ansmu=1;
10 long long int gcd(long long int a,long long int b)
11 {
12     if(a==0)return b;
13     else return gcd(b%a,a);
14 }
15 int main()
16 {
17     long long int n;
18     cin>>n;
19     
20     for(int i=1;i<=n;i++)
21     {
22         scanf("%d/%d",&a[i],&b[i]);
23     }
24     if(n==1)
25     {    
26         long long int gys=gcd(a[1],b[1]);
27         a[1]=a[1]/gys;
28         b[1]=b[1]/gys;
29         if(b[1]==1)
30         {
31             cout<<a[1];    
32             return 0;
33         }
34         cout<<a[1]<<"/"<<b[1];
35         return 0;
36     }
37     for(int i=1;i<=n-1;i++)
38     {
39         ansmu=b[i+1]*b[i];
40         anszi=a[i]*(ansmu/b[i])+a[i+1]*(ansmu/b[i+1]);
41         b[i+1]=ansmu;
42         a[i+1]=anszi;
43     }
44     long long int zi=anszi;
45     long long int mu=ansmu;
46     long long int gys=gcd(zi,mu);
47     anszi=anszi/gys;
48     ansmu=ansmu/gys;
49     if(ansmu==1)cout<<anszi;
50     else
51     {
52         cout<<anszi<<"/"<<ansmu;
53     }
54     return 0;
55 }

这个题的测试数据比较坑爹

1.要考虑的分母为0的情况

2.要考虑的n为1的情况

3.所有数据全开long long否则最后一个点不过

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-03-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 12:分数求和
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档