c语言有理数均值思路,5-35 有理数均值 (20分)
题目:
输入格式:
输入第一行给出正整数N(\le≤100);第二行中按照a1/b1 a2/b2 …的格式给出N个分数形式的有理数,其中分子和分母全是整形范围内的整数;如果是负数,则负号一定出现在最前面。
输出格式:
在一行中按照a/b的格式输出N个有理数的平均值。注意必须是该有理数的最简分数形式,若分母为1,则只输出分子。
输入样例1:
4
1/2 1/6 3/6 -5/10
输出样例1:
1/6
输入样例2:
2
4/3 2/3
输出样例2:
1
思路:分数相加,化简,会用到最大公约数,跟最小公倍数,先写两个函数实现,将读入的分数做累加就好了,为了防止溢出累加之后化简一下。
C语言实现:
#include
void add(int *a, int *b, int c, int d);
int gcd(int n, int m);
int lcm(int n, int m);
int main(void)
{
int n;
int a, b, sum_a = 0, sum_b = 1;
scanf("%d", &n);
int i;
int x, y;
for (i=0; i
scanf("%d/%d", &a, &b);
add(&sum_a, &sum_b, a, b);
y = gcd(sum_a, sum_b);
sum_a /= y;
sum_b /= y;
}
sum_b *= n;
y = gcd(sum_a, sum_b);
sum_a /= y;
sum_b /= y;
if (sum_b == 1){
printf("%d", sum_a);
} else {
printf("%d/%d", sum_a, sum_b);
}
return 0;
}
int gcd(int n, int m)
{
int r;
while (n%m != 0){
r = n % m;
n = m;
m = r;
}
return m;
}
int lcm(int n, int m)
{
return n * m / gcd(n, m);
}
void add(int *a, int *b, int c, int d)
{
int l, n;
n = lcm(*b, d);
*a *= n / *b;
c *= n / d;
*b = d = n;
*a = *a + c;
}
通过了全部测试。
QQ截图20170724201455.jpg
c语言有理数均值思路,5-35 有理数均值 (20分)相关推荐
- C语言满分代码:1018 锤子剪刀布 (20分)(解题报告)
立志用更少的代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 大家应该都会玩"锤子剪刀布"的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记 ...
- 极高效代码(C语言):1008 数组元素循环右移问题 (20分)
立志用更少的代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将 ...
- C语言满分代码:L1-059 敲笨钟 (20分)
立志用更少的代码做更高效的表达 微博上有个自称"大笨钟V"的家伙,每天敲钟催促码农们爱惜身体早点睡觉.为了增加敲钟的趣味性,还会糟改几句古诗词.其糟改的方法为:去网上搜寻压&quo ...
- 【2020模拟考试T4】【PAT乙】1034 有理数四则运算 (20分) 测试点2
problem 1034 有理数四则运算 (20分) 本题要求编写程序,计算 2 个有理数的和.差.积.商. 输入格式: 输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中 ...
- R语言vtreat包自动处理dataframe的缺失值、计算数据列的均值和方差并基于均值和方差信息对数据列进行标准化缩放、计算所有数据列的均值和方差对所有数据列进行标准化缩放
R语言vtreat包自动处理dataframe的缺失值.计算数据列的均值和方差并基于均值和方差信息对数据列进行标准化缩放.计算所有数据列的均值和方差并基于均值和方差信息对所有数据列进行标准化缩放 目录
- C++学习之路 | PTA乙级—— 1034 有理数四则运算 (20 分)(精简)
1034 有理数四则运算 (20 分) 本题要求编写程序,计算 2 个有理数的和.差.积.商. 输入格式: 输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中分子和分母全是 ...
- 利用最小堆完成有理数的类定义以及有理数逻辑运算
一.要求: 完成有理数的类定义以及有理数逻辑运算函数 class Rational{ friend bool operator<(const Rational& r1, const Ra ...
- C语言编译器概要设计思路一
700行代码自制C语言编译器一 编译器 1.编译器定义 将高级别语言翻译成更底层的机器可执行的语言 2.工业级编译器的编译过程 编译过程分前端和后端两个阶段 2-1 前端 前端即parser:将源代码 ...
- R语言使用rnorm函数基于不同的均值、方差参数生成正太分布的随机数、使用plot函数和density函数可视化正太分布的随机数对应的密度图、自定义设置均值和方差
R语言使用rnorm函数基于不同的均值.方差参数生成正太分布的随机数.使用plot函数和density函数可视化正太分布的随机数对应的密度图.自定义设置均值和方差(Normal distributio ...
- 2天让你从零基础到手握3-5生信热点分文章 线上课程8月7-8日
欢迎新老客户预定玮瑜消费预存卡 详情咨询谢先生13611825136 如你没时间参加 朋友圈转发2小时发送截图,或介绍学员,核实后可在授课结束后获得 PPT<WGCNA分析流程指南> 一 ...
最新文章
- python3 next()_Python3 File next() 方法 - Python 3 基础教程
- python浏览器自动化测试库【2018/7/27-更新】
- python【蓝桥杯vip练习题库】BASIC-3字母图形
- 【转】Eclipse下编写C++程序——CDT环境搭建
- java硬件编程_关于JAVA并发编程你需要知道的——硬件篇
- 一本通1629聪明的燕姿
- 报表中Mail Label 的使用
- Tomcat Manager服务启用
- 数据流中的中位数 c语言,41 数据流中的中位数(时间效率)
- 如何在github上搭建一个免费的 无限流量的静态网页博客Github pages
- 学术 | 不爱科研,只为当大学老师而读博,这种做法对吗?
- Arduino 利用PWM对板载LED实现呼吸灯效果
- 按键精灵python插件_按键精灵必须掌握的命令之插件命令
- 阿里云邮箱推送发送邮件 25端口禁用 问题
- JUCE小白求教VS2019-C1083无法打开包括文件
- 逸仙时空上翻的一个旧帖子
- 资产监测设备中二极管单向性和三相电电流流向问题
- 大数据_01【介绍】
- 20年上海站D题Walker(二分,简洁)
- stm32f4xx_it.c: Error: C3065E: type of input file 'DRIVER' unknown 解决办法