在 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+ 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告