最小公约数 今天打算写个最小公约数的程序,非递归的方法比较简单,这里写个递归的算法。 /************************************************************************* * Copyright (c) 2009 * All rights reserved. * * 文件名称:getmax.cpp * 摘 要:求两个数的最大公约数 * * 当前版本:1.0 * 作 者:dbkcpp * 完成日期: * ***************************************************************************/ #include #include using namespace std; uint64_t getmax(uint64_t m, uint64_t n) { int k = m % n; if( 0 == k) { return n; } else { getmax( n, k); } } int main(int argc, char ** argv) { uint64_t m, n; cout << getmax( 66, 99) << endl; return 0; } 递归的关键在于:一 终止条件,即什么时候终止;这个大家可以将m和n设置适当的数字,就知道了结束条件,二 调用递归函数的时候的传参,即首次调用这个函数以后要传入的参数,这个也比较关键,至于程序里面写的为什么传那两个参数,有兴趣的朋友可以看看数学方面的推导,这里我就不详细说明了!
阅读(385) | 评论(0) | 转发(0) |