/*
* Copyright (c) 2012, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作者:樊露露
* 完成日期:2012 年11月13日
* 版本号:v1.0
*
* 输入描述:无
* 问题描述:用递归和迭代求两个数的最大公约数
* 程序输出:最大公约数
* 问题分析:
* 算法设计:略
*/
//迭代解法
#include "iostream"
using namespace std;
int gcd(int x, int y);
void main()
{
int m,n;
cout<<"输入两个自然数: ";
cin>>m>>n;
cout<<"最大公约数:";
cout<<gcd(m,n)<<endl;
}
int gcd(int a, int b)
{
int t,r;
if (a < b)
t=a,a=b,b=t;
while (b!=0)
{
r=a%b;
a=b;
b=r;
}
return a;
}
//递归法
#include "iostream"
using namespace std;
int gcd(int x, int y);
void main()
{
int m,n;
cout<<"输入两个数字:";
cin>>m>>n;
cout<<"最大公约数:";
cout<<gcd(m,n)<<endl;
}
int gcd(int a, int b)
{
int g;
if (b==0)
g=a;
else
g=gcd(b,a%b);
return g;
}
心得体会:虽然在博客里求最大公约数的博文有好几篇了,但是每次方法都不一样。本人认为我们得感谢最大公约数