C语言:L1-009 N个数求和 (20 分)
文章目录
- 一、题目
- 二、方法1
- 1、思路
- 2、代码
一、题目
本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式。
输入格式:
输入第一行给出一个正整数N(≤100)。随后一行按格式a1/b1 a2/b2
…给出N个有理数。题目保证所有分子和分母都在长整型范围内。另外,负数的符号一定出现在分子前面。
输出格式:
输出上述数字和的最简形式 —— 即将结果写成整数部分 分数部分,其中分数部分写成分子/分母,要求分子小于分母,且它们没有公因子。如果结果的整数部分为0,则只输出分数部分。
输入样例1:
5
2/5 4/15 1/30 -2/60 8/3
输出样例1:
3 1/3
输入样例2:
2
4/3 2/3
输出样例2:
2
输入样例3:
3
1/3 -1/6 1/8
输出样例3:
7/24
二、方法1
1、思路
实际上本题考察分数相加:即分母通分,分子相加,约分。
易错点提示:
变量在长整形的范围内!
最大公约数 gcd(),使用递归的方式实现辗转相除法求最大公约数。
return b ? gcd(b, a % b) : a;
输出的时候注意考虑所有情况:
设结果为n,则① n > 1;② n = 1;③ n < 1;
2、代码
#include<stdio.h>
long long int gcd(long long int a, long long int b)
{return b ? gcd(b, a % b) : a;
}
int main()
{long long int N = 0, a = 0, b = 0, sum_a = 0, sum_b = 1, t;scanf("%lld", &N);for (int i = 0; i < N; i++){scanf("%lld/%lld", &a, &b);//通分相加sum_a *= b;sum_a += a * sum_b;sum_b *= b;//约分t = gcd(sum_a, sum_b);sum_a /= t;sum_b /= t;}if (sum_a % sum_b == 0)printf("%lld\n", sum_a / sum_b);else if (sum_a < sum_b)printf("%lld/%lld\n", sum_a, sum_b);elseprintf("%lld %lld/%lld\n", sum_a / sum_b, sum_a % sum_b, sum_b);return 0;
}
C语言:L1-009 N个数求和 (20 分)相关推荐
- 7-9 N个数求和 (20 分)
7-9 N个数求和 (20 分) 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤ ...
- N个数求和 (20 分)
N个数求和 (20 分) 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤100) ...
- 关于团体程序设计天梯赛-练习集 L1-009 N个数求和 (20 分) 以及测试点三过不了的一些想法
本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤100).随后一行按格式a1/b1 ...
- L1-009 N个数求和 (20分)(分数求和)
N个数求和 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤100).随后一行按格 ...
- 天梯赛 L1-009 N个数求和 (20 分)
涉及假分数和负数,因此是分子绝对值与分母比较(分母必正) #include <iostream> #include <cmath> using namespace std;in ...
- 5-1 N个数求和 (20分)
本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤\le≤100).随后一行按格式a ...
- N个数求和 (20分)
本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤100).随后一行按格式a1/b1 ...
- 实验4-1-5 统计素数并求和 (20 分)
实验4-1-5 统计素数并求和 (20 分) 本题要求统计给定整数M和N区间内素数的个数并对它们求和. 输入格式: 输入在一行中给出两个正整数M和N(1≤M≤N≤500). 输出格式: 在一行中顺序输 ...
- 实验4-1-7 特殊a串数列求和 (20 分)
实验4-1-7 特殊a串数列求和 (20 分) 给定两个均不超过9的正整数a和n,要求编写程序求a+a**a+aaa++⋯+a**a⋯a(n个a)之和. 输入格式: 输入在一行中给出不超过9的正整数a ...
- 1002 写出这个数 (20 分)
1002 写出这个数 (20 分) 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 1 ...
最新文章
- CoreCRM 开发实录 —— Profile
- 在刚刚结束的ACL 2019上,知识图谱领域都发生了哪些大事?
- 福利 | NVIDIA英伟达免费直播课:带你选择、搭建AI服务器!
- nagios监控mysql主从复制
- rtorrent - 强大的命令行BT客户端
- GlassFish linux下配置服务并自动启动
- Windows 任务栏缩略图自定义程序[更新 Build20100830]
- 窦学计算机基础期末考试,关于新生开学考计算机基础
- 苹果公司的企业文化_百度、苹果、脉脉等互联网大厂的企业文化衫还能这么潮?...
- 两个八进制小数怎么相加_两个十六进制怎么相加的
- tensorflow随机梯度下降算法使用滑动平均模型
- POJ2728 最小比率生成树/0-1分数规划/二分/迭代(迭代不会)
- Java多线程游戏-雷霆战机
- 绝绝子!这些技巧真方便
- 【学习笔记】树莓派(3B+)及VMware对于代理Proxy的使用
- 苹果x为什么总黑屏_苹果X突然黑屏重启怎么回事?教你强制重启方法
- IOS- 时间格式转换问题(12小时和24小时的区别)
- 各种进制转换常用方法
- 大数据前端可视化大屏--前端开发之路
- PyQt5入门(一)
热门文章
- 业务流程管理(BPM)系统的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- Vue实战篇三十四:给新闻WebApp加入模拟注册登录功能
- 泰拉瑞亚 1.4 搭建服务器教程
- 破解版百度云【亲测好用】完美解决限速
- vscode调试配置和任务配置
- 浅析ERP系统--财务
- VIVO应用市场APP上架总结
- 省市名_code_拼音
- 联想小新一键恢复小孔_联想小新笔记本怎么一键恢复|联想小新air恢复出厂系统步骤...
- 联想服务器安装系统 F11,教你联想thinkpad系统还原f11一键恢复方法