/*
求两个正整数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;
}
正文
练习:求两个正整数m和n的最大公约数(三种方法)2006-06-19 02:33:00
【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/bclz/15979.html
阅读(6185) | 评论(0)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论