📜  程序将两个分数相加(1)

📅  最后修改于: 2023-12-03 14:56:36.138000             🧑  作者: Mango

程序将两个分数相加

本文介绍如何编写一个程序,将两个分数相加。

输入

程序将要求用户依次输入两个分数。每个分数包括两个整数,分别表示分子和分母。输入时请确保分母不为 0。

输出

程序将输出两个分数相加的结果,用分数形式表示,并且要求结果约分。例如,如果输入 1/2 和 3/4,输出的结果应为 5/4。

实现方法

首先,我们需要定义一个函数,将两个分数相加:

def add_fraction(num1, denom1, num2, denom2):
    return (num1 * denom2 + num2 * denom1, denom1 * denom2)

在这个函数中,我们将两个分数的分子、分母相加,得到新的分子,将两个分数的分母相乘,得到新的分母。最后将新的分子和分母作为结果返回。

接下来,我们需要实现约分功能,确保输出结果为最简形式的分数。我们可以编写一个reduce_fraction函数:

def reduce_fraction(num, denom):
    gcd = math.gcd(num, denom)
    return (num // gcd, denom // gcd)

在这个函数中,我们使用 Python 标准库中的 gcd 函数求出分子分母的最大公约数,然后分别除以最大公约数即可。

最后,我们将前面两个函数结合起来,实现完整的程序:

import math

def add_fraction(num1, denom1, num2, denom2):
    return (num1 * denom2 + num2 * denom1, denom1 * denom2)

def reduce_fraction(num, denom):
    gcd = math.gcd(num, denom)
    return (num // gcd, denom // gcd)

num1 = int(input('请输入第一个分数的分子:'))
denom1 = int(input('请输入第一个分数的分母:'))
num2 = int(input('请输入第二个分数的分子:'))
denom2 = int(input('请输入第二个分数的分母:'))

num_sum, denom_sum = add_fraction(num1, denom1, num2, denom2)
num_sum, denom_sum = reduce_fraction(num_sum, denom_sum)

print('相加的结果为:{}/{}'.format(num_sum, denom_sum))

现在,您已经学会了如何编写一个将两个分数相加的程序。