在 C++ 中将分数约简到最简形式


给定两个整数 Num1 和 Num2 作为输入。这些整数可以表示为分数 Num1/Num2。目标是将此分数约简到最简形式。

使用最大公约数查找最大分母

  • 我们将计算这两个数字的最大公约数。

  • 将这两个数字除以该最大公约数

  • 将这两个变量设置为除法后的商。

  • 最简分数将为 Num1/Num2。

示例

输入 - Num1=22 Num2=10

输出 - Num1 = 11 Num2 = 5

最简分数:11/5

说明 - 22 和 10 的最大公约数是 2。

22/2=11 和 10/2=5

最简分数是 11/5

输入 - Num1=36 Num2=40

输出 - Num1 = 9 Num2 = 10

最简分数:9/10

说明 - 36 和 40 的最大公约数是 4。

40/4=10 和 36/4=9

最简分数是 9/10

下面程序中使用的方案如下

在这种方案中,我们将首先使用递归方法计算输入数字的最大公约数。将这两个数字除以最大公约数并获得商。这些商将成为最简分数的一部分。

  • 获取输入变量 Num1 和 Num2。

  • 函数 findGCD(int a, int b) 获取 num1 和 num2 并返回两者的最大公约数。

  • 如果 b 为 0,则返回 a,否则返回 findGCD(b,a%b)。

  • 函数 lowestFraction(int num1, int num2) 获取这两个数字作为输入并打印最简分数。

  • 获取变量 denom 用于最大公约数。

  • 设置 num1=num1/denom 和 num2=num2/denom。

  • 打印 num1 和 num2。

  • 打印最简分数为 num1/num2。

示例

#include <bits/stdc++.h>
using namespace std;
int findGCD(int a, int b) {
   if (b == 0)
      return a;
      return findGCD(b, a % b);
   }
   void lowestFraction(int num1, int num2){
      int denom;
      denom = findGCD(num1,num2);
      num1/=denom;
      num2/=denom;
      cout<< "Num1 = " << num1<<endl;
      cout<< "Num2 = " << num2<<endl;
      cout<< "Lowest Fraction : "<<num1<<"/"<<num2;
}
int main(){
   int Num1 = 14;
   int Num2 = 8;
   lowestFraction(Num1,Num2);
   return 0;
}

输出

如果我们运行以上代码,它将生成以下输出

Num1 = 7
Num2 = 4
Lowest Fraction : 7/4

更新于: 2021-11-03

5K+ 次查看

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告