说实话,这道题的思路其实不难,但是,实现起来我是卡了;

题目链接:
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个数求和---题解相关推荐

  1. L1-009. N个数求和

    L1-009. N个数求和 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 本题的要求很简单,就是求N个数字的和.麻烦的是,这些 ...

  2. n个数求和 java_暴力+辗转相除法——N个数求和

    题目来源 PTA 团体程序设计天梯赛-练习集 L1-009 N个数求和 (20分) 题目描述 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须 ...

  3. 0066-若干个数求和问题

    题目 若干个数求和问题 难度级别:A: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 输入若干个整数(不会超过 10000 个),输出它们的和 ...

  4. 牛客题霸 [ 最小的K个数] C++题解/答案

    牛客题霸 [ 最小的K个数] C++题解/答案 题目描述 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4. 题解: 如果有n&l ...

  5. 牛客题霸 [二进制中1的个数] C++题解/答案

    牛客题霸 [二进制中1的个数] C++题解/答案 题目描述 输入一个整数,输出该数32位二进制表示中1的个数.其中负数用补码表示. 题解: 判断1的个数 x&(-x)=2^k 有点类似于树状数 ...

  6. 1081 n个数求和 (多实例测试)

    n个数求和 (多实例测试) 题目描述 求n个整数的和. 输入 输入第一行是一个整数T,表示有T组测试实例: 每组输入包括两行: 第一行一个数n表示接下来会有n个整数: 第二行空格隔开的n个数. 输出 ...

  7. 7-9 N个数求和 (20 分)

    7-9 N个数求和 (20 分) 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤ ...

  8. N个数求和 (20 分)

    N个数求和 (20 分) 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤100) ...

  9. L1-009 N个数求和 (20分)(分数求和)

    N个数求和 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤100).随后一行按格 ...

  10. N个数求和--(PTA天梯赛练习)

    N个数求和 (20 分) 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤100) ...

最新文章

  1. 阿里分布式事务框架GTS开源了!
  2. Sublime注释插件--DocBlockr
  3. 华为系统鸿蒙假的,鸿蒙系统只是噱头?华为董事长:不是噱头,必要时也能用于手机 - 区块网...
  4. windbg分析dmp蓝屏文件_手把手教你分析漏洞 : CVE-2018-8120
  5. 算法总结之欧拉函数中国剩余定理
  6. 香港高校校长对话盖茨:技术与社会
  7. 1025. 除数博弈
  8. 26.leetcode160_intersection_of_two_linked_lists
  9. 虚拟机中windows镜像下载与安装
  10. MyFirefox v2.6.2 - 打造自己的 Firefox 便携版
  11. 关于微信8.0.0以下版本登录版本验证的解决办法
  12. 老路MBA商学课|第001课:机会成本|放弃掉的鱼,是选择熊掌的代价?
  13. pagesize==0异常问题
  14. 【Java全栈学习路线】最全的Java学习路线及知识清单,Java自学方向指引
  15. Unity 鼠标点击事件穿透
  16. 可以同情弱者,别同情弱势!
  17. 一起学习华为自研数据库GaussDB(DWS)【这次高斯不是数学家】
  18. 成语接龙(英语单词链)
  19. android如何切换主题背景图片,安卓怎么更换主题 安卓手机更换壁纸与主题教程...
  20. 关于Donews的记忆---从从容容走出那段泥沼

热门文章

  1. WAV高清语音格式音频
  2. web前端期末大作业 html+css家乡旅游主题网页设计 湖北武汉家乡介绍网页设计实例
  3. mmorpg服务器物理,伸缩性MMORPG服务器架构的设计与实现
  4. 俩 AI 约会遭全网围观:再厉害的算法,也逃不了翻车
  5. 自定义锁屏图片 win7
  6. oracle数据库综合练习题及答案写法
  7. 从零开始创建自己的博客
  8. 21.通用型1602液晶显示屏操作方法
  9. web安全:X老师告诉小宁他在cookie里放了些东西,小宁疑惑地想:‘这是夹心饼干的意思吗?’
  10. Zotero文献管理软件入门使用方法:软件下载、文献导入、引文插入