不同方法求解两个数的最大公约数代码
来源:互联网 发布:美国休斯网络系统公司 编辑:程序博客网 时间:2024/05/09 21:01
#include<iostream>
using namespace std;
long gys2(long m,long n);
long gys3(long m,long n);
long gys1(long m,long n)//从小到大逐级求最大公约数,2为起始点
{
long d=1,k=2;
if(m==0 && n==0)return 0;
if(m==0) return n;
if(n==0) return m;
if(m<0) m=-m;
if(n<0) n=-n;
for(;k<=m && k<=n;k++)
if(m%k==0&&n%k==0)
d=k;
return d;
}
long gys2(long m,long n)//从m和n中找最小值,从最小值往下求解
{
long k,d;
if(m<0) m=-m;
if(n<0) n=-n;
if(m==0) return n;
if(n==0) return m;
if(m==0 && n==0) return 0;
k=m<n?m:n;
for(;(m%k!=0)||(n%k!=0);k--)
{
}
d=k;
return d;
}
long gys3(long m,long n)//递归求最大公约数,转转相除法。
{
if(m<0) m=-m;
if(n<0) n=-n;
if(m==0) return n;
if(n==0) return m;
if(m==0 && n==0) return 0;
return m%n==0?n:gys3(n,m%n);
}
void main()
{
long x,y;
cin >>x>>y;
cout<<gys1(x,y)<<endl;
cout<<gys2(x,y)<<endl;
cout<<gys3(x,y)<<endl;
}
using namespace std;
long gys2(long m,long n);
long gys3(long m,long n);
long gys1(long m,long n)//从小到大逐级求最大公约数,2为起始点
{
long d=1,k=2;
if(m==0 && n==0)return 0;
if(m==0) return n;
if(n==0) return m;
if(m<0) m=-m;
if(n<0) n=-n;
for(;k<=m && k<=n;k++)
if(m%k==0&&n%k==0)
d=k;
return d;
}
long gys2(long m,long n)//从m和n中找最小值,从最小值往下求解
{
long k,d;
if(m<0) m=-m;
if(n<0) n=-n;
if(m==0) return n;
if(n==0) return m;
if(m==0 && n==0) return 0;
k=m<n?m:n;
for(;(m%k!=0)||(n%k!=0);k--)
{
}
d=k;
return d;
}
long gys3(long m,long n)//递归求最大公约数,转转相除法。
{
if(m<0) m=-m;
if(n<0) n=-n;
if(m==0) return n;
if(n==0) return m;
if(m==0 && n==0) return 0;
return m%n==0?n:gys3(n,m%n);
}
void main()
{
long x,y;
cin >>x>>y;
cout<<gys1(x,y)<<endl;
cout<<gys2(x,y)<<endl;
cout<<gys3(x,y)<<endl;
}
- 不同方法求解两个数的最大公约数代码
- 第十二周项目三 用递归方法求解(求出两个数的最大公约数)
- 第12周项目3-用递归方法求解--求出两个数的最大公约数
- 第十二周项目3-用递归方法求解-求两个数的最大公约数
- 第四周项目5:用递归方法求解(3)求两个数的最大公约数
- 第四周项目五-用递归方法求解(用递归求出两个数的最大公约数)
- 用C求解两个数的最大公约数和最小公倍数
- 求两个数的最大公约数的方法
- 求两个数最大公约数的方法
- 求两个数最大公约数的方法
- 求两个数最大公约数的多种方法
- 第十二周项目3-用递归方法求解(3)用递归函数求两个数的最大公约数
- 第12周上机实践项目3——用递归方法求解(求两个数的最大公约数)
- 第十二周 项目三-用递归方法求解-(3)用递归函数求两个数的最大公约数
- 两个数的最大公约数
- 两个数的最大公约数
- 两个数的最大公约数
- 两个数的最大公约数
- 托盘图标的现实(利用类)
- 存储集合元素的List转换为Map
- 安装完IIS localhost打不开
- Oracle PL SQL :TIPS
- 多边形bool操作效率对比
- 不同方法求解两个数的最大公约数代码
- 同步多线程
- visual assist X(VA_X) win7下不兼容的解决办法
- Openssl使用
- c++类的构造函数详解
- 在Excel 2010的单元格添加下拉列表的方法
- 一个普通参会者经历的2011年中国移动开发者大会
- 何时用复合,何时用继承三原则
- tinyXML文件保存编码(UTF-8, GB2312)相关的一个问题