
正文
辗转相除法c语言函数调用 c语言编程辗转相除法
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言辗转相除法
例如用辗转相除法求a b 最大公约数(a b谁大谁小无所谓):
int GCD( int a , int b )
{
int n=a%b;
whie(n != 0) //即: while(n)
{
a = b;
b = n;
n = a % b;
}
return b; //注意这里返回的是b 不是n
}
相关问答
Q1: C语言函数辗转相除法!
#include stdio.h
/*辗转相除法函数*/
int gcd_div(int a,int b)
{
if (b == 0) {
return a;
} else {
return gcd_div(b,a % b);
}
}
/*更相减损法函数*/
int gcd_sub(int a,int b)
{
int ma,mb;
ab?(ma=a,mb=b):(ma=b,mb=a);
if (mb == 0) {
return ma;
} else {
return gcd_sub(ma-mb,mb);
}
}
int main()
{
int a = 28,b = 21;
printf("最大公约数(减法):(%d %d)%d\n",b,a,gcd_sub(b,a));
printf("最大公约数(除法):(%d %d)%d\n",b,a,gcd_div(a,b));
return 0;
}
Q2: 辗转相除法c语言代码
辗转相除法用来求两个数的最大公约数,代码如下:
#include stdio.h
#include stdlib.h
int main()
{
int a, b,r;
scanf("%d %d", a, b);
while(b!=0)//当其中一个数为0,另一个数就是两数的最大公约数
{
r = a%b;
a = b;
b = r;
}
printf("Greatest Common Divisor: %d\n", a);
system("pause");
}
运行结果:






