分数求和ᅟᅠ        ‌‍‎‏

分数求和

      • C语言代码
      • C++ 代码
      • Java代码
      • Python代码


💐The Begin💐点点关注,收藏不迷路💐

输入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

以下是使用C、C++、Java、Python实现输入多个分数并求和,输出最简形式的代码:

C语言代码

#include <stdio.h>
#include <stdlib.h>

// 求最大公约数的函数
int gcd(int a, int b) {
return b == 0? a : gcd(b, a % b);
}

int main() {int n;scanf("%d", &n);  // 输入分数的个数nint sum_numerator = 0, sum_denominator = 1;for (int i = 0; i < n; i++) {int numerator, denominator;scanf("%d/%d", &numerator, &denominator);  // 输入分子和分母sum_numerator = sum_numerator * denominator + numerator * sum_denominator;sum_denominator *= denominator;  // 通分后进行分子相加,分母相乘}int common_divisor = gcd(sum_numerator, sum_denominator);  // 求最大公约数sum_numerator /= common_divisor;sum_denominator /= common_divisor;  // 化简if (sum_denominator == 1) {printf("%d", sum_numerator);  // 分母为1,直接输出整数形式} else {printf("%d/%d", sum_numerator, sum_denominator);  // 输出分数形式}return 0;
}

C++ 代码

#include <iostream>
using namespace std;

// 求最大公约数函数
int gcd(int a, int b) {
return b == 0? a : gcd(b, a % b);
}

int main() {int n;cin >> n;  // 输入分数个数nint sum_numerator = 0, sum_denominator = 1;for (int i = 0; i < n; i++) {int numerator, denominator;char slash;  // 用于接收输入中表示分数的斜杠字符,虽然这里没实际用到它的值,但可以用来正确处理输入格式cin >> numerator >> slash >> denominator;  // 先读分子,再读斜杠(会自动跳过),然后读分母sum_numerator = sum_numerator * denominator + numerator * sum_denominator;sum_denominator *= denominator;  // 通分后计算分子和分母}int common_divisor = gcd(sum_numerator, sum_denominator);  // 求最大公约数sum_numerator /= common_divisor;sum_denominator /= common_divisor;  // 化简if (sum_denominator == 1) {cout << sum_numerator;  // 分母为1输出整数形式} else {cout << sum_numerator << "/" << sum_denominator;  // 输出分数形式}return 0;
}

Java代码

import java.util.Scanner;

public class Main {
// 求最大公约数的方法
static int gcd(int a, int b) {
return b == 0? a : gcd(b, a % b);
}

public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();  // 读取分数个数nint sum_numerator = 0, sum_denominator = 1;for (int i = 0; i < n; i++) {String fraction = scanner.next();int index = fraction.indexOf('/');int numerator = Integer.parseInt(fraction.substring(0, index));int denominator = Integer.parseInt(fraction.substring(index + 1));// 通分后计算分子和分母sum_numerator = sum_numerator * denominator + numerator * sum_denominator;sum_denominator *= denominator;}int common_divisor = gcd(sum_numerator, sum_denominator);  // 求最大公约数sum_numerator /= common_divisor;sum_denominator /= common_divisor;  // 化简if (sum_denominator == 1) {System.out.println(sum_numerator);  // 分母为1输出整数形式} else {System.out.println(sum_numerator + "/" + sum_denominator);  // 输出分数形式}
}

}

Python代码

from math import gcdn = int(input())  # 获取分数个数n
sum_numerator = 0
sum_denominator = 1
for _ in range(n):fraction = input().split('/')  # 分割输入的分数为分子分母numerator = int(fraction[0])denominator = int(fraction[1])sum_numerator = sum_numerator * denominator + numerator * sum_denominatorsum_denominator *= denominator  # 通分计算分子分母
common_divisor = gcd(sum_numerator, sum_denominator)  # 求最大公约数
sum_numerator //= common_divisor
sum_denominator //= common_divisor  # 化简
if sum_denominator == 1:print(sum_numerator)  # 分母为1输出整数形式
else:print(f"{sum_numerator}/{sum_denominator}")  # 输出分数形式

在这里插入图片描述


💐The End💐点点关注,收藏不迷路💐

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/487533.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

5G中的随机接入过程可以不用收RAR?

有朋友提到了一种不用接收RAR的RA过程&#xff0c;问这个是怎么回事。其实在刚刚写过的LTM cell switch篇章中就有提到&#xff0c;这里把所有相关的内容整理如下。 在RACH-less LTM场景&#xff0c;在进行LTM cell switch之前就要先知道target cell的TA信息&#xff0c;进而才…

Ubuntu安装grafana

需求背景&#xff1a;管理服务器&#xff0c;并在线预警&#xff0c;通知 需求目的&#xff1a; 及时获取服务器状态 技能要求&#xff1a; 1、ubuntu 2、grafana 3、prometheus 4、https://img-home.csdnimg.cn/images/20230724024159.png?origin_urlhttps%3A%2F%2Fimg…

vue3获取、设置元素高度

前言 在web端常见的需求场景中&#xff0c;会经常遇到table表格需要根据页面可视区域使高度自适应的情况。 傻喵(作者本人)昨天在尝试使用vue3实现这个需求时&#xff0c;看了几篇网上写的回答&#xff0c;都不太全面&#xff0c;所以干脆自己写个总结吧.(第一次写&#xff0c…

美畅物联丨观看实时视频对服务器带宽有什么要求?

​随着互联网的迅猛发展&#xff0c;实时视频观看已然成为人们日常生活中不可或缺的一部分。不管是视频会议、在线教育&#xff0c;还是在线娱乐&#xff0c;实时视频都起到了极为重要的作用。不过&#xff0c;实时视频的流畅播放对服务器的带宽有着极高的要求。本文将深入探究…

MongoDB-固定集合(Capped Collection)

在 MongoDB 中&#xff0c;固定集合&#xff08;Capped Collection&#xff09;是一种具有特殊属性的集合。固定集合具有一个固定的最大大小&#xff0c;并且一旦达到该大小时&#xff0c;最早插入的文档将会被自动删除&#xff0c;以便为新的文档腾出空间。固定集合的这种特性…

EasyExcel注解使用

上接《Springboot下导入导出excel》&#xff0c;本篇详细介绍 EasyExcel 注解使用。 1. ExcelProperty value&#xff1a;指定写入的列头&#xff0c;如果不指定则使用成员变量的名字作为列头&#xff1b;如果要设置复杂的头&#xff0c;可以为value指定多个值order&#xff…

yolo-V3

1、研究背景及意义 1&#xff09;对yolo进行创新&#xff0c;准确度更高。 2、创新点 1&#xff09;主要是更换了主干网络&#xff0c;使用了多尺度特征融合。 3、网络结构 yolo-V3以Darket-Net-53为主干网络。网络输入一张尺寸为416416的图片&#xff0c;经过多层卷积分别…

零基础如何使用ChatGPT快速学习Python

引言 AI编程时代来临&#xff0c;没有编程基础可以快速上车享受时代的红利吗&#xff1f;答案是肯定的。本文旨在介绍零基础如何利用ChatGPT快速学习Python编程语言&#xff0c;开启AI编程之路。解决的问题包括&#xff1a;传统学习方式效率低、缺乏互动性以及学习资源质量参差…

重生之我在异世界学编程之C语言:枚举联合篇

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 本文目录 引言正文枚举&#xff08;Enum&#xff0…

MYSQL索引的分类和创建

目录 1、聚簇索引和非聚簇索引 tips&#xff1a; 小问题&#xff1a;主键为什么建议使用自增id? 2、普通索引 &#xff08;常规索引&#xff09;(normal) 3、唯一索引&#xff08;UNIQUE &#xff09; 唯一索引和主键的区别&#xff1a; 唯一约束和唯一索引的区别&#…

Robust Depth Enhancement via Polarization Prompt Fusion Tuning

paper&#xff1a;论文地址 code&#xff1a;github项目地址 今天给大家分享一篇2024CVPR上的文章&#xff0c;文章是用偏振做提示学习&#xff0c;做深度估计的。模型架构图如下 这篇博客不是讲这篇论文的内容&#xff0c;感兴趣的自己去看paper&#xff0c;主要是分享环境&…

.NET 一款获取主机远程桌面端口的工具

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

【开源】A066—基于JavaWeb的农产品直卖平台的设计与实现

&#x1f64a;作者简介&#xff1a;在校研究生&#xff0c;拥有计算机专业的研究生开发团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看项目链接获取⬇️&#xff0c;记得注明来意哦~&#x1f339; 赠送计算机毕业设计600个选题ex…

vue3+vite+ts 使用webrtc-streamer播放海康rtsp监控视频

了解webrtc-streamer webrtc-streamer 是一个使用简单机制通过 WebRTC 流式传输视频捕获设备和 RTSP 源的项目&#xff0c;它内置了一个小型的 HTTP server 来对 WebRTC需要的相关接口提供支持。相对于ffmpegflv.js的方案&#xff0c;延迟降低到了0.4秒左右&#xff0c;画面的…

C语言基础六:循环结构及面试上机题

Day06&#xff1a;循环结构 定义 代码的重复执行&#xff0c;就叫做循环 循环的分类 无限循环:其实就是死循环&#xff0c;程序设计中尽量避免无限循环。程序中的无限循环必须可控。有限循环:循环限定循环次数或者循环的条件。 循环的构成 循环条件循环体 当型循环的实现…

树莓集团:探索打造数字影像产业新发展

在当今数字化高速发展的时代背景下&#xff0c;树莓集团始终勇立潮头&#xff0c;坚定地踏上了探索打造产业新发展的非凡征程。 产业生态构建是树莓集团战略布局中的关键一环。集团积极与上下游企业开展广泛而深入的合作&#xff0c;建立起一个互利共赢、协同发展的产业生态系…

Linux 基础环境的开发工具以及使用(下)

1. make / Makefile 自动化构建的工具 1&#xff09;引入 在我们进行一些大型的工程的时候&#xff0c;代码量是极其大&#xff0c;当我们代码在进行一系列的编译的时候&#xff0c;难免会出现一些错误&#xff0c;当我们对错误进行一系列的更改之后&#xff0c;难道我们需要…

ERROR: KeeperErrorCode = NoNode for /hbase/master

原因分析 通过上面的情景模拟&#xff0c;我们可以看到报错的原因在于zookeeper中出现问题&#xff0c;可能是zookeeper中的/hbase/master被删除&#xff0c;或者是在hbase集群启动之后重新安装了zookeeper&#xff0c;导致zookeeper中的/hbase/master节点数据异常。 1. 停止…

【 C语言练习(4)—可自己设置游戏规则的猜数字游戏】

C语言练习&#xff08;4&#xff09; 文章目录 C语言练习&#xff08;4&#xff09;前言题目题目解析结果总结 前言 本次写的猜字游戏有两大优点&#xff0c;可重复玩游戏、可自己设置猜数字规则&#xff0c;通过猜数字游戏锻炼循环体和选择结构体 题目 写一个给定猜数次数&a…

【Vulkan入门】08-CreateRenderPass

目录 先叨叨git信息关键代码TestPipeLine::CreateRenderPass() 先叨叨 上篇已经为Pipeline编写好了程序&#xff08;Shader&#xff09;。接下来要为Pipeline创建RenderPass。 关于RenderPass&#xff0c;在【Vulkan入门】06-Pipeline介绍中已经作了简单的介绍。这里再详细说一…