如何编写C语言程序来使用For循环、While循环、函数和递归查找两个数的最大公约数。
根据数学,两个或多个整数的最大公约数(GCD)是能将给定整数值整除且余数为零的最大正整数。例如,C语言中两个数,即整数8和12的最大公约数是4,因为8和12都能被1、2和4整除(余数为0),而在因子1、2和4中最大的正整数是4。
最大公约数(GCD)也称为最高公因子(HCF)、最大公因子(GCF)、最高公约数(HCD)或最大公约数(GCM)。
C语言使用For循环查找两个数最大公约数的程序
这个两个数最大公约数的程序允许用户输入两个正整数值。然后,我们将计算这两个值的最高公因子。接下来,使用For循环,它将计算GCD。要找到最大公约数,我们至少需要提供一个非零值。
#include <stdio.h>
int main()
{
int Num1, Num2, i, GCD;
printf("Please Enter two integer Values \n");
scanf("%d %d", &Num1, &Num2);
for(i = 1; i <= Num1 && i <= Num2; i++)
{
if(Num1 % i == 0 && Num2 % i == 0)
GCD = i;
}
printf("GCD of %d and %d is = %d", Num1, Num2, GCD);
return 0;
}
两个数的最高公因子输出
Please Enter two integer Values
8
12
GCD of 8 and 12 is = 4
在此示例中,第一个编程printf语句将要求用户输入两个正整数值。
For循环将限制i值不大于用户指定的输入值。在下一行,我们使用If语句来检查Num1 % i和Num2 % i的余数是否等于零。
C语言使用While循环查找两个数最大公约数的程序
这个两个数最大公约数的程序允许用户输入两个正整数值。接下来,我们将使用While循环计算这两个值的最大公约数。
#include <stdio.h>
int main()
{
int Num1, Num2, Temp, GCD;
printf("Please Enter two integer Values \n");
scanf("%d %d", &Num1, &Num2);
while (Num2 != 0) {
Temp = Num2;
Num2 = Num1 % Num2;
Num1 = Temp;
}
GCD = Num1;
printf("GCD = %d", GCD);
return 0;
}

在此程序中,在while循环中,我们检查第二个值是否不等于零。如果等于零,它将退出while循环。否则,它将开始执行while循环内的语句。
C语言在不使用临时变量的情况下查找两个数最大公约数的程序
这个gcd程序允许您输入两个正整数值。接下来,我们将计算这两个值的最大公约数,而无需使用临时变量。
#include <stdio.h>
int main()
{
int Num1, Num2, GCD;
printf("Please Enter two integer Values \n");
scanf("%d %d", &Num1, &Num2);
if (Num1 == 0) {
printf("GCD = %d", Num2);
}
while (Num2 != 0) {
if (Num1 > Num2) {
Num1 = Num1 - Num2;
}
else {
Num2 = Num2 - Num1;
}
}
GCD = Num1;
printf("GCD = %d", GCD);
return 0;
}
两个数的最高公因子输出
Please Enter two integer Values
75
255
GCD = 15
C语言使用函数查找两个数最大公约数的程序
这个两个数最大公约数的程序允许用户输入两个正整数值。接下来,我们将使用函数计算这两个值的最大公约数。
#include <stdio.h>
long gcd(long x, long y);
int main()
{
int Num1, Num2;
printf("Please Enter two integer Values \n");
scanf("%d %d", &Num1, &Num2);
printf("GCD of %d and %d is = %d", Num1, Num2, gcd(Num1, Num2));
return 0;
}
long gcd(long x, long y)
{
if (x == 0) {
return y;
}
while (y != 0) {
if (x > y) {
x = x - y;
}
else {
y = y - x;
}
}
return x;
}
Please Enter two integer Values
75
1575
GCD of 75 and 1575 is = 75
C语言使用递归查找两个数最大公约数的程序
这个C语言两个数最大公约数的程序允许用户输入两个正整数值。接下来,我们将通过递归调用函数来计算这两个值的最大公约数。有关更多信息,请参考递归。
#include <stdio.h>
long gcd(long x, long y);
int main()
{
int Num1, Num2;
printf("Please Enter two integer Values \n");
scanf("%d %d", &Num1, &Num2);
printf("GCD of %d and %d is = %d", Num1, Num2, gcd(Num1, Num2));
return 0;
}
long gcd(long x, long y)
{
if (y == 0) {
return x;
}
else {
return gcd(y, x % y);
}
}
Please Enter two integer Values
81
153
GCD of 81 and 153 is = 9
在这个C语言的两个数最大公约数示例中,当编译器到达main()程序中的long gcd(long x, long y)行时,编译器将立即跳转到下面的函数
long gcd(long x, long y) {
在上面指定的函数中,return gcd(y, x % y)语句将帮助程序递归调用具有更新值的函数。如果您在两个数最大公约数的程序中遗漏了此语句,在完成第一行后,程序将终止。
让我们看一下gcd程序中的If条件。这里,if (y == 0)将检查该数字是否等于0。对于递归函数,在使用函数递归调用之前放置一个条件非常重要。否则,我们将陷入无限执行(与无限循环相同)。请注意 :)
评论已关闭。