在 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
廣告