/*
* Copyright (c) 2012, 烟台大学计算机学院
* All rights reserved.
* 作 者:解晓东
* 完成日期:2012 年 11 月 17 日
* 版 本 号:v1.0
*
* 输入描述:
* 问题描述:
* 程序输出:
* 问题分析:
* 算法设计:
*/
# include <iostream>
using namespace std;
/*函数的声明*/
void sort(int &, int &);//形参为引用
int function(int, int);
/*main函数*/
int main()
{
/*变量的定义*/
int num1, num2, common(0);
/*输出与输入*/
cout << "please input two numbers:";
cin >> num1
>> num2;
/*函数的调用*/
// sort(num1, num2);//可以不用排序
common = function(num1, num2);
/*输出*/
cout << num1
<< ", "
<< num2
<< " "
<< "max_common is:"
<< common
<< endl;
return 0;/*结束*/
}
/*函数的定义*/
void sort(int & max, int & min)//求max,min
{
int temp(0);
if (max < min)
{
temp = min;
min = max;
max = temp;
}
}
int function(int num1, int num2)
{
int common(1);//common初始化为1
int remainder(0);//remainder初始化为0
while (num2 > 0)//如果除数为0,结束循环,及上次循环中余数为0
{
remainder = num1 % num2;//求余数
num1 = num2;//将除数赋给下一次的被除数
num2 = remainder;//将本次余数赋给下一次除数
}
common = num1;//能被整除的除数及为最大公约数
return common;//返回common的值,及最大公约数
}