浏览 4811 次
锁定老帖子 主题:用递归求两个数的最大公约数
精华帖 (0) :: 良好帖 (0) :: 新手帖 (10) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-05-13
/************************ * 文件名:GongYueShu.cpp * 功 能:计算两个数的最大公约数 * 作 者:若风恶魔 * 时 间:09/5/13 ************************/ #include <iostream.h> #define u32 unsigned int u32 count(u32,u32); int main(void) { u32 x,y,flag;//此两数用于接收输入的两个正整数 while(1) { cout<<"********************************************"<<endl; cout<<"请选择功能号:1 退出程序,其它 计算公约数"<<endl; cout<<"********************************************"<<endl; cout<<"功能号:"; cin>>flag; switch(flag) { case 1: return 1; default: cout<<"请输入第两个数:"<<endl; cin>>x>>y; cout<<"x="<<x<<",y="<<y<<endl; cout<<"x,y的最大公约数是:"<<count(x,y)<<endl; break; } } } /************************ * 函数名:count * 参 数:arg1:第一个数,arg2第二个数 * 功 能:计算两个数的最大公约数 * 作 者:若风恶魔 * 时 间:09/5/13 * 备 注:此函数用递归方法实现 ************************/ u32 count(u32 arg1,u32 arg2) { u32 tem; if(0==arg1%arg2) return arg2; //递归函数出口 else { tem = arg2; arg2 = arg1%arg2; arg1 = tem; count(arg1,arg2);//函数在此进行递归 } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-05-13
最后修改:2009-05-13
unsigned gcd(unsigned a, unsigned b){ return (b ? gcd(b, a % b) : a); } |
|
返回顶楼 | |