(C++)一行代码递归实现辗转相除法

Posted CSU迦叶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(C++)一行代码递归实现辗转相除法相关的知识,希望对你有一定的参考价值。

定理:两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数。

int gcd(int a,int b){
    return !b?a:gcd(b,a%b);
}

这里递归边界是

gcd(a,0)=a;

递归式是

gcd(a,b)=gcd(b,a%b);

以上是关于(C++)一行代码递归实现辗转相除法的主要内容,如果未能解决你的问题,请参考以下文章

算法总结之 一行代码求两个数的最大公约数

迷宫生成 - 递归除法(它是如何工作的?)

JavaScript - 代码片段,Snippets,Gist

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情

辗转相除法求最大公约数------一行代码

C++ class实现二叉树(完整代码,附非递归遍历)