正文

练习:求两个正整数m和n的最大公约数(三种方法)2006-06-19 02:33:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/bclz/15979.html

分享到:

/*    求两个正整数m和n的最大公约数可用如下gcd(m,n)公式表示               m           n=0    gcd(m,n)=                gcd(n,m%n)  n>0    */    #include <stack>    using namespace std;typedef stack<int>  ints;//递归实现 int gcd(int m,int n){    int  res;    if(n==0)        res=m;    else        res=gcd(n,m%n);    return res;}//非递归实现 int gcd2(int m,int n){    int res;    while(n!=0)    {        int t;        t=m;         m=n;        n=t%n;    }    res=m;    return res;    }//用栈实现非递归 int gcd3(int m,int n){    ints S;    int res;    while(n!=0)    {        S.push(n);        S.push(m%n);        n=S.top();        S.pop();        m=S.top();        S.pop();    }    return m;}

阅读(6376) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册