题目:运行最大公约数的常用算法,并进行程序的调式与测试,要求程序设计风格良好,并添加异常处理模块(如输入非法等)。
题目分析:此题目中分别用辗转相除法、穷举法、更相减损法以及stein法来对两个数的最大公约数进行计算,可用四个函数分别对这四个方法来进行实现,这四个方法主要部分均可用循环结构来进行实现。
以下为程序源代码:
#include <iostream>
#include "math.h"
using namespace std;
int divisor_1(int a,int b)/*辗转相除法*/
{
int temp;
if(a<b) /*将大数赋给a,将小数覆盖赋给b*/
{
temp=a;
a=b;
b=temp;
}
while(b!=0) /*循环求余数至余数为0为止*/
{
temp=a%b;
a=b;
b=temp;
}
return a; /*返回最小公约数*/
}
int divisor_2(int a,int b)/*穷举法*/
{
int temp;
if(a<b) /*将大数赋给a,将小数赋给b*/
{
temp=b;
b=a;
a=temp;
}
temp=b; /*将小的数赋给temp*/
while(temp>0) /*循环让两个数按从大到小的顺序除[0,temp]上的数,直到这个数都能被他两整除*/
{
if(a%temp==0&&am