* 文件名称:gcd.cpp
* 作 者:李超
* 完成日期:2011年 10月12日
* 版 本 号:01.06
* 问题描述:求出两个整数的最大公约数
* 输入:两个正整数
* 输出:这两个正整数的最大公约数
* 算法:辗转相除法
* 算法描述:
* 设变量a,b为两个非负整数
* 若a<b, 交换a和b的值
* 当b不等于0,重复执行
* 求a除以b的余数,存入变量r
* 将b的值赋予a
* 将r的值赋予b
* 输出a的值
#include "iostream"
using namespace std;
int gcd();
void main()
{
int gcd(int x, int y);
int m,n,g;
cout<<"输入两个数字:"; //在执行时,请输入两个正整数
cin>>m>>n;
g = gcd(m,n);
cout<<"最大公约数:"<<g<<endl;
}
int gcd(int a, int b)
{
int t,r;
if (a < b) //交换 a 和 b
{
t=a;
a=b;
b=t;
} //单步调试中,要注意变量的变化过程
while (b!= 0)
{
r=a%b;
a=b;
b=r;
}
return a;
}