L1-009 N个数求和---题解
说实话,这道题的思路其实不难,但是,实现起来我是卡了;
题目链接:
L1-009 N个数求和
解题思路
1.用结构体储存每一个分数
2.用sum做累加器
3.讨论输出
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;
struct fraction{ll mumerator; // 分子char slash; // 斜杠ll denominator; // 分母
};
int main()
{int n;cin>>n;fraction a[n],sum;for (int i = 0; i < n; ++i) {cin>>a[i].mumerator>>a[i].slash>>a[i].denominator; // 输入每一个分数}sum.denominator=a[0].denominator; // 将a[0] 做第一个累加器;sum.mumerator=a[0].mumerator;sum.slash='/';for (int j = 1; j < n; ++j) { // for循环,利用sum累加迭代ll deno=sum.denominator*a[j].denominator/(__gcd(sum.denominator,a[j].denominator)); // 求每两个分母的最小公倍数ll sum_mum=deno/sum.denominator; // 计算sum 分母扩大倍数ll a_mum=deno/a[j].denominator; // 计算a[j] 分母扩大倍数sum.mumerator=sum_mum*sum.mumerator+a_mum*a[j].mumerator; // 计算累加器分子sum.denominator=deno; // 改变累加器分母}ll deno_mum=__gcd(sum.denominator,sum.mumerator); //sum.mumerator=sum.mumerator/deno_mum; //sum.denominator=sum.denominator/deno_mum; // 这三行就是化简分数; if (abs(sum.mumerator)/sum.denominator>1) // 分情况讨论输出;{if (abs(sum.mumerator)%sum.denominator==0)cout<<sum.mumerator/sum.denominator<<endl;else{ll inter;inter=sum.mumerator/sum.denominator;sum.mumerator=sum.mumerator-inter*sum.denominator;cout<<inter<<" "<<sum.mumerator<<sum.slash<<sum.denominator<<endl;}}else{if (sum.mumerator==0)cout<<"0"<<endl;elsecout<<sum.mumerator<<sum.slash<<sum.denominator<<endl;}return 0;
}
L1-009 N个数求和---题解相关推荐
- L1-009. N个数求和
L1-009. N个数求和 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 本题的要求很简单,就是求N个数字的和.麻烦的是,这些 ...
- n个数求和 java_暴力+辗转相除法——N个数求和
题目来源 PTA 团体程序设计天梯赛-练习集 L1-009 N个数求和 (20分) 题目描述 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须 ...
- 0066-若干个数求和问题
题目 若干个数求和问题 难度级别:A: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 输入若干个整数(不会超过 10000 个),输出它们的和 ...
- 牛客题霸 [ 最小的K个数] C++题解/答案
牛客题霸 [ 最小的K个数] C++题解/答案 题目描述 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4. 题解: 如果有n&l ...
- 牛客题霸 [二进制中1的个数] C++题解/答案
牛客题霸 [二进制中1的个数] C++题解/答案 题目描述 输入一个整数,输出该数32位二进制表示中1的个数.其中负数用补码表示. 题解: 判断1的个数 x&(-x)=2^k 有点类似于树状数 ...
- 1081 n个数求和 (多实例测试)
n个数求和 (多实例测试) 题目描述 求n个整数的和. 输入 输入第一行是一个整数T,表示有T组测试实例: 每组输入包括两行: 第一行一个数n表示接下来会有n个整数: 第二行空格隔开的n个数. 输出 ...
- 7-9 N个数求和 (20 分)
7-9 N个数求和 (20 分) 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤ ...
- N个数求和 (20 分)
N个数求和 (20 分) 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤100) ...
- L1-009 N个数求和 (20分)(分数求和)
N个数求和 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤100).随后一行按格 ...
- N个数求和--(PTA天梯赛练习)
N个数求和 (20 分) 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤100) ...
最新文章
- 阿里分布式事务框架GTS开源了!
- Sublime注释插件--DocBlockr
- 华为系统鸿蒙假的,鸿蒙系统只是噱头?华为董事长:不是噱头,必要时也能用于手机 - 区块网...
- windbg分析dmp蓝屏文件_手把手教你分析漏洞 : CVE-2018-8120
- 算法总结之欧拉函数中国剩余定理
- 香港高校校长对话盖茨:技术与社会
- 1025. 除数博弈
- 26.leetcode160_intersection_of_two_linked_lists
- 虚拟机中windows镜像下载与安装
- MyFirefox v2.6.2 - 打造自己的 Firefox 便携版
- 关于微信8.0.0以下版本登录版本验证的解决办法
- 老路MBA商学课|第001课:机会成本|放弃掉的鱼,是选择熊掌的代价?
- pagesize==0异常问题
- 【Java全栈学习路线】最全的Java学习路线及知识清单,Java自学方向指引
- Unity 鼠标点击事件穿透
- 可以同情弱者,别同情弱势!
- 一起学习华为自研数据库GaussDB(DWS)【这次高斯不是数学家】
- 成语接龙(英语单词链)
- android如何切换主题背景图片,安卓怎么更换主题 安卓手机更换壁纸与主题教程...
- 关于Donews的记忆---从从容容走出那段泥沼