题目

本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式。
输入格式:
输入第一行给出一个正整数N(≤100)。随后一行按格式a1/b1 a2/b2 …给出N个有理数。题目保证所有分子和分母都在长整型范围内。另外,负数的符号一定出现在分子前面。
输出格式:
输出上述数字和的最简形式 —— 即将结果写成整数部分 分数部分,其中分数部分写成分子/分母,要求分子小于分母,且它们没有公因子。如果结果的整数部分为0,则只输出分数部分。

题解
大致思路就是一个数组存放分子部分,一个数组存放分母部分,求出分母的最小公倍数,对分数进行通分。
最后输出的是要最简形式。
输入的时候,scanf("%d/%d",&a[i],&b[i]);

代码

#include<iostream>
#include<cmath>
#include<stdio.h>
using namespace std;
//求最大公约数的函数
long gcd(long a,long b){return a%b==0 ? b:gcd(b,a%b);
}int main(){int N;cin>>N;int a[100];//分子 int b[100];//分母long s1=0;//分子的和 long s2=0; //最小公倍数,最后的分母,长整型注意是//输入要求和的数据for(int i=0;i<N;i++){scanf("%d/%d",&a[i],&b[i]);} //求分母的最小公倍数s2=b[1];for(int i=1;i<N;i++){s2=s2*b[i]/gcd(s2,b[i]);}//分数通分之后求分子的和 for(int i=0;i<N;i++){s1=s1+s2/b[i]*a[i];}long long n=s1/s2,m=abs(s1%s2);if(m==0){//余数为零,说明结果是整数cout<<n<<endl; }else{//余数不为零,结果有分数 //分数前面的整数部分 if(n!=0){cout<<n<<" ";}//分子的和是负数 if(s1<0){cout<<"-";} //输出结果的最简形式 cout<<m/gcd(s2,m)<<"/"<<s2/gcd(s2,m); }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. 1081 n个数求和 (多实例测试)

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

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

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

  6. N个数求和 (20 分)

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

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

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

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

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

  9. Java未知个数求和,数字求和

    Java未知个数求和,数字求和 1. 从键盘输入n个数,并完成累加求和输出. 提示: n为输入值.使用Scanner类的nextXXX()方法. 解答: 第一种:n 从键盘输入 import java ...

  10. Python什么是闭包、闭包特征、定义闭包传入一个数求和并输出,定义一个装饰器:打印函数运行花费的时间,定义一个类:要求:包含一个对象属性,且用_(单下划线)命名的定义一个类方法(装饰器)

    1. 闭包.闭包特征及应用 1.1 什么是闭包? 闭包就是外部函数中定义一个内部函数,内部函数引用外部函数中的变量,外部函数的返回值是内部函数; 闭包是由函数及其相关的引用环境组合而成的实体(即:闭包 ...

最新文章

  1. BMC:幼年特发性关节炎患儿肠道菌群的特征、生物标记的识别及其在临床预测中的作用...
  2. Scala传名参数(By-Name)
  3. pytorch 扩展张量
  4. [YTU]_2443 ( C++习题 复数类--重载运算符3+)
  5. linux java so 历险
  6. 优化的ms sql server分页sql语句
  7. [蓝桥杯2015初赛]生命之树-求树的最大子树权值和
  8. INET Sockets Tour: ioctl()
  9. linux挂载磁盘组,11G ASM磁盘组不能自动MOUNT处理
  10. 洛谷P1182 数列分段 Section II(二分+贪心)
  11. Windows下调试hadoop
  12. LAMP架构调优(六)——开启长链接
  13. java core 之 异常处理详解
  14. 有效的java限定名称_java - 如何获取java类的完全限定名称 - SO中文参考 - www.soinside.com...
  15. Centos7 设置静态IP地址
  16. 【图像处理】多光谱 波长波段划分 主要波段特性 植被遥感原理 典型植被指数
  17. 刷题时遇到的经典解法(实时更新)
  18. Qlikview---日期字段
  19. gulp minify-css 压缩之后删除calc所在行解决
  20. python中列表概念,Python 列表的简单介绍

热门文章

  1. 9.8.6恢复系统数据库
  2. delphi ScriptGate 调用JS
  3. CSS将长文字换行的方法 (转)
  4. WannaCry 不相信眼泪 它需要你的安全防御与响应能力
  5. 数据库抽取,生成CSV文件导出,CSVUtils工具类
  6. 平民架构的春天——UCloud数据方舟实战记
  7. redis-3.0.2集群部署
  8. 利用JS使用POST方式提交请求的方法
  9. php 魔术方法 说明
  10. 构建RESTful风格的WCF服务