将分数减少到 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 = 7Num2 = 4
最低分数: 7/4
以上是 将分数减少到 C++ 中的最低形式 的全部内容, 来源链接: utcz.com/z/322609.html