7-35 有理数均值 (20 分)

简介: 本题要求编写程序,计算N个有理数的平均值。

本题要求编写程序,计算N个有理数的平均值。


输入格式:

输入第一行给出正整数N(≤100);第二行中按照a1/b1 a2/b2 …的格式给出N个分数形式的有理数,其中分子和分母全是整形范围内的整数;如果是负数,则负号一定出现在最前面。


输出格式:

在一行中按照a/b的格式输出N个有理数的平均值。注意必须是该有理数的最简分数形式,若分母为1,则只输出分子。


输入样例1:

1. 4
2. 1/2 1/6 3/6 -5/10


输出样例1:

1/6


输入样例2:

1. 2
2. 4/3 2/3


输出样例2:

1


PS:

1.难点就是累加,不然会溢出,我利用C++的__gcd()函数,非常方便

2.然后再不断地累加,直到最后的答案求出来


代码如下:

#include <iostream>
#include <algorithm>
using namespace std;
int main() {
  int n, a = 0, b = 0, t; //a是分子,b是分母
  cin >> n;
  char c;//输入'/'
  int *top = new int[n];
  int *bottom = new int[n];
  for (int i = 0; i < n; i++) { //输入
    cin >> top[i] >> c >> bottom[i];
  }
  a = top[0];
  b = bottom[0];
  for (int i = 1; i < n; i++) {
    a = a * bottom[i] + top[i] * b;
    b *= bottom[i];
    if (a > 0)
      t = __gcd(a, b);
    else if (a < 0)
      t = __gcd(-a, b);
    //防止溢出
    a /= t;
    b /= t;
  }
  b *= n;
  if (a > 0)
    t = __gcd(a, b);
  else if (a < 0)
    t = __gcd(-a, b);
  a /= t;
  b /= t;
  if (b == 1)
    cout << a;
  else
    cout << a << "/" << b;
  delete[]top;
  delete[]bottom;
}


相关文章
|
缓存
KVCache原理简述
KVCache原理简述
435 0
|
关系型数据库 MySQL 数据安全/隐私保护
MySQL8.0生产环境二进制标准安装
MySQL8.0生产环境二进制标准安装
|
数据采集 网络协议 定位技术
Socks5代理IP可以运用到哪些应用场景?
Socks5代理与HTTP代理对比,Socks5支持多种协议,提供更强认证,适合P2P和UDP,适用于匿名上网、突破网络限制、低延迟游戏、P2P文件共享、SEO和网络爬虫。其多功能性、安全性和广泛支持使其在多个场景中优于HTTP代理。随着技术发展,Socks5代理的应用前景广阔。
|
机器学习/深度学习 人工智能 算法
没想到!AlphaZero式树搜索也能用来增强大语言模型推理与训练
【7月更文挑战第26天】Xidong Feng等研究人员提出了一项创新方法,通过采用AlphaZero式的树搜索算法来增强大语言模型(LLMs)的推理与训练能力。这项技术,称为TS-LLM(Tree-Search for LLMs),将LLMs的解码过程视为搜索问题,并运用AlphaZero的树搜索来指导这一过程。TS-LLM不仅提升了模型的通用性和适应性,还在多个任务中实现了显著的性能提升。此外,它能在训练阶段指导LLMs学习更优的解码策略。尽管如此,TS-LLM依赖于高质量的预训练LLM,并面临较高的计算成本挑战。[论文](https://arxiv.org/abs/2309.17179)
220 5
|
10月前
|
测试技术 持续交付 数据安全/隐私保护
软件测试的艺术与科学:探索自动化测试框架
在软件开发的世界中,测试是确保产品质量的关键环节。本文将深入探讨自动化测试框架的重要性和实现方法,旨在为读者揭示如何通过自动化测试提升软件测试效率和准确性。我们将从测试的基本概念出发,逐步引导读者了解自动化测试框架的设计和实施过程,以及如何选择合适的工具来支持测试活动。文章不仅提供理论知识,还将分享实用的代码示例,帮助读者将理论应用于实践。无论你是测试新手还是经验丰富的开发者,这篇文章都将为你打开一扇通往更高效、更可靠软件测试的大门。
140 1
|
前端开发 数据可视化 JavaScript
探索前端可视化开发:低代码平台原理与实践
【4月更文挑战第6天】本文探讨了低代码平台在前端开发中的应用,包括模型驱动和组件化开发原理,以及自动化代码生成和部署的优势。低代码平台能提高开发效率,降低技术门槛,并灵活适应变更,同时保证应用的一致性。实践中,需明确适用场景,选择合适平台,并培养团队低代码技能。通过与现有技术栈融合及持续优化,低代码平台能推动业务创新和数字化转型,开发者应积极探索其在实际项目中的应用。
361 0
|
存储 监控 NoSQL
MongoDB以其独特的优势和广泛的应用场景
MongoDB以其独特的优势和广泛的应用场景
439 8
|
存储 缓存 Docker
Docker系列.Docker镜像分层原理
Docker系列.Docker镜像分层原理
682 4
|
Ubuntu 关系型数据库 MySQL
使用PXD工具一键安装PolarDB-X的体验
这次体验挺有意思的,对PolarDB-X有了更深入的了解,也希望能通过这些建议帮助产品做得更好。
604 2
使用PXD工具一键安装PolarDB-X的体验
|
C语言
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)