1081. Rational Sum (20)[数据处理]
来源:互联网 发布:僵尸先网络ddos 编辑:程序博客网 时间:2024/06/05 08:25
1. 原题: https://www.patest.cn/contests/pat-a-practise/1081
2. 思路:
题意:
其实就是输出最简分数。
思路:
两个两个相加,最后再化简。
要点:
1.结果是整数,只输出整数;
2.若是负数, 整数和分数的分子都有负号;
3.结果可能为0;
其实就是输出最简分数。
思路:
两个两个相加,最后再化简。
要点:
1.结果是整数,只输出整数;
2.若是负数, 整数和分数的分子都有负号;
3.结果可能为0;
3. 源码(已AC):
#include<iostream>typedef long long int lint;//使用长整型using namespace std;lint gcd(lint a, lint b);//求最大公约数int main(void){//freopen("in.txt", "r", stdin);lint a = 0;lint b = 0;lint n;scanf("%lld", &n);scanf("%lld/%lld", &a, &b);//先读一组数据for (int i = 1; i < n; i++)//从1开始循环{lint c, d;scanf("%lld/%lld", &c, &d);a = a*d + b*c;//加法处理b = b*d;}if (a == 0)//结果0的特殊情况{printf("0\n");return 0;}lint intPart = a / b;//整数部分if (intPart != 0)printf("%lld", intPart);a %= b;if (a == 0)//只有整数情况return 0;if (intPart != 0)printf(" ");if (a < 0)//先输出负号{printf("-");a = -a;}lint factor = gcd(a, b);//求最大公约数a /= factor;b /= factor;printf("%lld/%lld\n", a, b);//输出分数部分return 0;}lint gcd(lint a, lint b)//辗转相除法求最大公约数{return (a == 0 ? b : gcd(b%a, a));}
0 0
- 1081. Rational Sum (20)[数据处理]
- 1081. Rational Sum (20)
- 1081. Rational Sum (20)
- 1081. Rational Sum (20)
- 1081. Rational Sum (20)
- 1081. Rational Sum (20)
- 1081. Rational Sum (20)
- 1081. Rational Sum (20)
- 1081. Rational Sum (20)
- 1081. Rational Sum (20)
- 1081. Rational Sum (20)
- 1081. Rational Sum (20)
- 1081. Rational Sum (20)
- 1081. Rational Sum (20)
- 1081. Rational Sum (20)
- 1081. Rational Sum (20)
- 1081. Rational Sum (20)
- 1081. Rational Sum (20)
- coco2d-x 终端向Classes文件中添加新类
- java锁-自旋锁
- PMON主动调用的频率控制
- 解决PR输出时输出视频文件过大
- 10060---反射
- 1081. Rational Sum (20)[数据处理]
- 竞争性分配振兴实体经济等三项财政专项激励资金
- coreseek 全文(中文)索引安装
- 推荐系统笔记一、基于近邻的推荐系统(基础篇)
- C语言结构体的使用基础
- html5 实现时钟
- 根据前序、中序遍历创建二叉树
- SEO 技巧,如何设计一个高质量的 URL 和标题
- Linux CentOS 6.5 下 vsftpd ftp服务器搭建