首頁  >  文章  >  後端開發  >  將分數化簡為最簡形式的C++程式碼

將分數化簡為最簡形式的C++程式碼

王林
王林轉載
2023-09-05 19:37:061742瀏覽

將分數化簡為最簡形式的C++程式碼

給定兩個整數Num1和Num2作為輸入。這兩個整數可以表示為分數Num1/Num2。目標是將該分數化簡為最簡形式。

使用最大公約數(GCD)找出最大分母

  • 我們將計算這兩個數的最大公約數。

  • 將這兩個數字都除以最大公約數。

  • 將這兩個變數設定為除法後的商。

  • 最簡分數將為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
#

以上是將分數化簡為最簡形式的C++程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除