计算多个分数的乘积并化简

本篇博客文章将介绍如何计算多个分数的乘积,并将结果化简为最简分数形式。我们将使用 C++ 和 Python 两种编程语言来实现该算法。

问题描述

给定 n 个分数,每个分数由分子和分母组成,计算所有分数的乘积,并将结果表示为最简分数形式。

解题思路

  1. 计算分子和分母的乘积: 将所有分数的分子相乘得到最终分子的乘积,将所有分数的分母相乘得到最终分母的乘积。
  2. 求最大公约数 (GCD): 使用辗转相除法求出最终分子和分母的最大公约数。
  3. 化简分数: 将最终分子和分母分别除以它们的最大公约数,得到最简分数形式。

代码实现

以下是使用 C++ 和 Python 实现该算法的代码:

C++:

#include <iostream>
#include <algorithm>
using namespace std;

int gcd(int a, int b) {
  return b == 0 ? a : gcd(b, a % b);
}

int main() {
  int n, a, b, numerator = 1, denominator = 1;
  cin >> n;
  for (int i = 0; i < n; ++i) {
    cin >> a >> b;
    numerator *= a;
    denominator *= b;
  }
  int commonDivisor = gcd(numerator, denominator);
  cout << numerator / commonDivisor << '/' << denominator / commonDivisor << endl;
  return 0;
}

Python:

from math import gcd

n = int(input())
numerator = 1
denominator = 1
for i in range(n):
  a, b = map(int, input().split())
  numerator *= a
  denominator *= b
common_divisor = gcd(numerator, denominator)
print(f'{numerator // common_divisor}/{denominator // common_divisor}')

示例

输入:

3
1 2
3 4
2 5

输出:

3/10

总结

本文介绍了如何使用 C++ 和 Python 计算多个分数的乘积并化简为最简分数形式。该算法简单易懂,可以方便地应用于实际问题中。

C++/Python 实现 - 计算多个分数的乘积并化简

原文地址: https://www.cveoy.top/t/topic/dogu 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录