(8)分数求和
来源:互联网 发布:苹果赚钱软件哪个好 编辑:程序博客网 时间:2024/05/17 01:42
描述
输入n个分数并对他们求和,用约分之后的最简形式表示。
比如:
q/p = x1/y1 + x2/y2 +….+ xn/yn,
q/p要求是归约之后的形式。
如:5/6已经是最简形式,3/6需要规约为1/2, 3/1需要规约成3,10/3就是最简形式。
PS:分子和分母都没有为0的情况,也没有出现负数的情况
输入
第一行的输入n,代表一共有几个分数需要求和
接下来的n行是分数
输出
输出只有一行,即归约后的结果
很简单,也很容易理解。
巧妙的是求最大公约数的部分
#include<iostream>using namespace std;int main(){ int n; cin >> n; int sumn = 0; int sumd = 1;//分别存储分子和分母 sumn/sumd while (n--){ int num, deno; char slash;//输入/的 cin >> num >> slash >> deno; //先相加 a/b+c/d =(a*d+b*c)/(b*d) sumn = sumn*deno + num*sumd; sumd = sumd*deno; } //后约分 //先求最大公约数gcd,这里用的是欧几里得法 int a = sumd, b = sumn, c; while (a != 0){ c = a; a = b%a; b = c; } int gcd = b; //分子分母同时除以gcb约分 sumd = sumd / gcd; sumn = sumn / gcd; if (sumd > 1) cout << sumn << "/" << sumd << endl; else cout << sumn << endl; system("pause"); return 0;}
阅读全文
0 0
- (8)分数求和
- 分数求和
- 分数求和
- 分数求和
- 分数求和
- 分数求和
- 分数求和
- 分数求和
- 分数求和
- 分数加分(迭代求和)
- 1099 分数数列求和(2)
- 1102 分数数列求和(5)
- C4top-N个数求和 (分数求和模拟)
- hdu--2503--分数求和
- 有序分数求和
- 1101 分数数列求和
- 分数的求和--char3
- 分数求和扩展
- Ai 科技大本营
- android常用的必备基础知识
- SQL两表之间:根据一个表的字段更新另一个表的字段
- BAT脚本
- const指针
- (8)分数求和
- 数据访问层
- 基于jquery的轮播图组件开发-1
- Python -- Numpy中ndarray的属性和方法
- HTML5的time标签
- STM32系统滴答_及不可不知的延时技巧
- String的常用方法与将金额转换成大写
- Android 绕Y轴翻转
- PAT乙级真题及训练集(24)--1031. 查验身份证(15)(小感触)