首页 文章资讯内容详情

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

2026-06-02 1 花语

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

使用GCD求最大分母

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

将两个数字除以那个gcd

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

最低分数将为Num1/Num2。

例子

输入 −Num1=22Num2=10

输出 −Num1=11Num2=5

最低分数:11/5

说明-22和10的GCD是2。

22/2=11和10/2=5

最低分数是11/5

输入−Num1=36Num2=40

输出−Num1=9Num2=10

最低分数:9/10

解释-36和40的GCD是4。

40/4=10和36/4=9

最低分数是9/10

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

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

取输入变量Num1和Num2。

函数findGCD(inta,intb)接受num1和num2并返回两者的gcd。

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

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

为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