12:分数求和
时间:2022-05-07
本文章向大家介绍12:分数求和,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
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"的形式表示。样例输入
2
1/2
1/3
样例输出
5/6
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否则最后一个点不过
- 关于EF Code First模式不同建模方式对建表产生的影响
- C# 命名空间和程序集
- C# new关键字和对象类型转换(双括号、is操作符、as操作符)
- 防止小程序多次点击跳转解决方案
- 详述 SQL 中的 distinct 和 row_number() over() 的区别及用法
- Web API系列之三 基本功能实现
- 微信小程序的省市选择组件 citySelector分享
- 详述 Java 语言中的 String、StringBuffer 和 StringBuilder 的使用方法及区别
- Class与Style绑定
- 机器学习并不难
- android的RadioGroup讲解
- asp.net MVC 应用程序的生命周期
- 091031 T PowerShell Solution
- Rafy 框架 - 通用查询条件(CommonQueryCriteria)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PHP PDOStatement::execute讲解
- 详解用Python爬虫获取百度企业信用中企业基本信息
- PHP连接及操作PostgreSQL数据库的方法详解
- 使用Keras建立模型并训练等一系列操作方式
- PHP获取ttf格式文件字体名的方法示例
- PHP iconv()函数字符编码转换的问题讲解
- 使用PHP反射机制来构造"CREATE TABLE"的sql语句
- PHP PDOStatement::fetch讲解
- 解决Pytorch自定义层出现多Variable共享内存错误问题
- PHP观察者模式定义与用法实例分析
- ThinkPHP5.1表单令牌Token失效问题的解决
- PHP设计模式之工厂模式(Factory Pattern)的讲解
- keras K.function获取某层的输出操作
- 浅谈sklearn中predict与predict_proba区别
- 解决Keras中循环使用K.ctc_decode内存不释放的问题