C语言精髓:最大公约数

//辗转相除法的基本思路是:
//对正整数a和b,连续进行求余运算,直到余数为0为止,
//此时非0的除数就是最大公约数。设r=a mod b表示a除以b的余数,
//若r≠0,则将b作为新的a,r作为新的b,
//重复a mod b运算,直到r=0时为止,此时b为所求的最大公约数。

//例如,50和15的最大公约数的求解过程可表示为:Gcd(50, 15)=Gcd(15, 5)=Gcd(5, 0)=5。


#include <stdio.h>

int Gcd(int a, int b)
{
    if (a%b == 0)
        return b;
    else
        return Gcd(b,a%b);
}

int main(int argc, char *argv[])
{
<span style="white-space:pre">	</span>printf("%d\n",Gcd(50,15));
<span style="white-space:pre">	</span>return 0;
}


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。