分数求和ᅟᅠ        ‌‍‎‏

分数求和

      • 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.mzph.cn/bicheng/63682.shtml

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

相关文章

优秀前端文章笔记----持续更新

AI相关&#xff1a; 【介绍了RAG】万字长文分享AI落地前端实操&#xff0c;带你成为公司最懂AI的前端大佬&#xff01;【介绍了提示词】面向前端人的提示词工程指南【介绍了AI IDE】打造一个 Cursor 只需要三步 工具相关&#xff1a; AI-magic收录了大量国内外AI工具箱&#…

vue-生命周期

Vue 的生命周期是指 Vue 实例从创建到销毁期间经历的一系列阶段。每个阶段都有相应的钩子函数&#xff08;Lifecycle Hooks&#xff09;&#xff0c;允许开发者在这些关键时刻执行自定义逻辑。 一、钩子函数 1. 创建阶段 beforeCreate 在实例初始化之后&#xff0c;数据观测 …

SpringBoot中的@Configuration注解

在Spring Boot中&#xff0c;Configuration注解扮演着非常重要的角色&#xff0c;它是Spring框架中用于定义配置类的一个核心注解。以下是Configuration注解的主要作用&#xff1a; 定义配置类&#xff1a; 使用Configuration注解的类表示这是一个配置类&#xff0c;Spring容器…

【经典论文阅读】Latent Diffusion Models(LDM)

Latent Diffusion Models High-Resolution Image Synthesis with Latent Diffusion Models 摘要 动机&#xff1a;在有限的计算资源下进行扩散模型训练&#xff0c;同时保持质量和灵活性 引入跨注意力层&#xff0c;以卷积方式实现对一般条件输入&#xff08;如文本或边界框…

交换瓶子(图论 贪心)

1224. 交换瓶子 - AcWing题库 把每一个瓶子看成一个点&#xff0c;从每个瓶子向他应该在的那个位置的瓶子连一条边 通过这个方式&#xff0c;我们就可以连出n条边 观察可以发现这些图有特点&#xff1a; n个点 连成n条边 因为每个点会指向它应该在的位置的那个点&#xff…

汽车免拆案例 | 2007款宝马650i车发动机偶尔无法起动

故障现象 一辆2007款宝马650i车&#xff0c;搭载N62B48B发动机&#xff0c;累计行驶里程约为26万km。车主反映&#xff0c;发动机偶尔无法起动&#xff0c;故障频率较低&#xff0c;十几天出现1 次&#xff0c;且故障出现时起动机不工作。 故障诊断  接车后试车&#xff0c;…

oracle 取斜杠后字符

在Oracle中&#xff0c;可以使用SUBSTR和INSTR函数组合来取得斜杠后的字符。以下是一个示例SQL语句&#xff0c;它取得指定字段中最后一个斜杠后的所有字符&#xff1a; SELECT SUBSTR(column_name, INSTR(column_name, /, -1) 1) AS last_slash_after_char FROM table_name;…

厦门凯酷全科技有限公司怎么样?

随着短视频和直播带货的兴起&#xff0c;抖音电商平台迅速崛起&#xff0c;成为众多品牌和商家争夺的新战场。在这个竞争激烈的市场中&#xff0c;如何抓住机遇、实现销售增长&#xff0c;成为了每个企业面临的挑战。厦门凯酷全科技有限公司&#xff08;以下简称“凯酷全”&…

「Mac玩转仓颉内测版49」小学奥数篇12 - 图形变换与坐标计算

本篇将通过 Python 和 Cangjie 双语实现图形变换与坐标计算。这个题目帮助学生理解平面几何中的旋转、平移和对称变换&#xff0c;并学会用编程实现坐标变化。 关键词 小学奥数Python Cangjie图形变换坐标计算 一、题目描述 编写一个程序&#xff0c;模拟以下三种图形变换&a…

MBTI 16人格分析

文章目录 一、MBTI介绍二、十六种MBTI人格1.ESTJ&#xff1a;总经理2.ENTP&#xff1a;辩论家3.INTP&#xff1a;逻辑学家4.ISFJ&#xff1a;守卫者 三、4组人格分析1.E与I2.S与N3.T与F4.P与J 一、MBTI介绍 MBTI是一种人格类型理论模型。全称是“Myers-Briggs Type Indicator”…

2024 X-GAME 上海智能新能源汽车大数据竞赛决赛顺利举行,和鲸Heywhale连续五年助推新能源汽车产业发展

11月22日&#xff0c;第七届 X-GAME 上海智能新能源汽车大数据竞赛圆满落幕&#xff01;这是和鲸作为协办方第五年为 X-GAME 新能源汽车分析赛道提供全程支持&#xff0c;赋能新能源汽车的产业发展。自 2018 年首次举办以来&#xff0c;以“数联万物&#xff0c;车载未来”为主…

书生实战营第四期-进阶岛第六关-MindSearch 快速部署

一、开发环境配置 1、打开codespace主页&#xff0c;选择Blank模板进行创建 Codespaces 2、创建conda环境隔离并安装依赖 conda create -n mindsearch python3.10 -y conda init 因为是新建的codespace&#xff0c;在第一次创建conda环境时&#xff0c;需要conda init 然后再…

ubuntu16.04部署dify教程

文章目录 1、克隆 Dify 源代码至本地环境2、加速Dify镜像文件下载3、启动 Dify4、访问 Dify5、更新 Dify6、常见问题及解决方案&#xff08;1&#xff09;容器restarting&#xff08;2&#xff09;日志文件上限&#xff08;3&#xff09;重置管理员密码&#xff08;4&#xff0…

开发类似的同款小程序系统制作流程

很多老板想要开发一款和别人家类似的同款小程序系统&#xff0c;但是不知道该怎么开发制作&#xff0c;本文就为大家详细介绍一下开发类似的同款小程序的流程为大家做参考。 一、前期准备找到对标小程序&#xff1a;首先&#xff0c;需要找到你想要模仿的同款小程序&#xff0…

python joblib和pickle的详细对比和使用步骤

在当今数据驱动的时代&#xff0c;序列化&#xff08;Serialization&#xff09;成为了数据处理和存储中不可或缺的一部分。无论是在机器学习、数据分析&#xff0c;还是在日常的编程任务中&#xff0c;能够将复杂的数据结构转换为可存储或传输的格式&#xff0c;都是提升工作效…

[代码随想录Day32打卡] 理论基础 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯

理论基础 题型 动归基础&#xff08;这一节就是基础题&#xff09;背包问题打家劫舍股票问题子序列问题 动态规划五部曲 确定dp数组及其下标的含义确定递推公式dp数组如何初始化遍历顺序打印dp数组 509. 斐波那契数 简单~ dp数组及下标含义&#xff1a; dp[i]表示第i各斐…

《操作系统 - 清华大学》6 -7:局部页面置换算法:Belady现象

文章目录 1. 定义2. LRU、FIFO和Clock的比较 1. 定义 局部页面置换算法的特点是针对一个正在运行的程序&#xff0c;它访问内存的情况&#xff0c;访问页的情况&#xff0c;来决定应该采取什么样策略&#xff0c;把相应的页替换出去&#xff0c;站在算法本身角度来考虑置换哪个…

Spring Boot 3 中Bean的配置和实例化详解

一、引言 在Java企业级开发领域&#xff0c;Spring Boot凭借其简洁、快速、高效的特点&#xff0c;迅速成为了众多开发者的首选框架。Spring Boot通过自动配置、起步依赖等特性&#xff0c;极大地简化了Spring应用的搭建和开发过程。而在Spring Boot的众多核心特性中&#xff…

maven报错“找不到符号“

问题 springboot项目 maven编译打包过程&#xff0c;报错"找不到符号" 解决 很多网上方法都试过&#xff0c;都没用 换jdk&#xff0c;把17->21

UnityShaderLab-实现溶解效果

实现思路&#xff1a; 使用一张噪声图&#xff0c;与一个Cut值计算&#xff08;加或减&#xff09;&#xff0c;将计算后的值赋值给Alpha,然后小于0的片段就被丢弃掉了。 ShaderGraph实现&#xff1a; ShaderLab实现&#xff1a; 效果&#xff1a; 未完待续。。。 参考链接…