将分数减少到 C++ 中的最低形式

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

使用 GCD 求最大分母

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

  • 将两个数字除以那个 gcd

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

  • 最低分数将为 Num1/Num2。

例子

输入 − Num1=22 Num2=10

输出 − Num1 = 11 Num2 = 5

最低分数:11/5

说明- 22 和 10 的 GCD 是 2。

22/2=11 和 10/2=5

最低分数是 11/5

输入− Num1=36 Num2=40

输出− Num1 = 9 Num2 = 10

最低分数:9/10

解释- 36 和 40 的 GCD 是 4。

40/4=10 和 36/4=9

最低分数是 9/10

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

在这种方法中,我们将首先使用递归方法计算输入数字的 GCD。将两个数字除以 GCD 并获得商。这些商将是最低分数的一部分。

  • 取输入变量 Num1 和 Num2。

  • 函数findGCD(int a, int b)接受 num1 和 num2 并返回两者的 gcd。

  • 如果 b 是 0 返回一个 else 返回 findGCD(b,a%b)。

  • 函数 minimumFraction(int num1, int num2) 将两个数字都作为输入并打印出最小的分数。

  • 为 gcd 取变量 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<< "最低分数: "<<num1<<"/"<<num2;

}

int main(){

   int Num1 = 14;

   int Num2 = 8;

   lowestFraction(Num1,Num2);

   return 0;

}

输出结果

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

Num1 = 7

Num2 = 4

最低分数: 7/4

以上是 将分数减少到 C++ 中的最低形式 的全部内容, 来源链接: utcz.com/z/322609.html

回到顶部