问题及代码:
/*
*文件名称:最大公约数
*作者:刘涛
完成日期:2016.3.19
*
*问题描述:分别求两个数和四个数的最大公约数
*输入描述:输入每个数组的数字个数,一共输入两组
程序输出:两个数组中没有共同拥有的数字
*/
#include <iostream>
using namespace std;
int gcd(int ,int );
int gcds(int x,int y,int z,int w);
int main()
{
int a,b,c,d,g,h;
cin>>a>>b>>c>>d;
g=gcd(a,b);
h=gcds(a,b,c,d);
cout<<"a和b的最大公约数是:"<<g;
cout<<"abcd的最大公约数是:"<<h;
return 0;
}
int gcd(int x,int y)
{
int r;
while(y!=0)
{
r=x%y;
x=y;
y=r;
}
return x;
}
int gcds(int x,int y,int z,int w)
{
return gcd(gcd(x,y),gcd(z,w));
}
运行结果:
<img src="https://img-blog.csdn.net/20160319194010156?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
知识点总结:运用了函数调用,以及嵌套的使用。还有就是求最大公约数以及最小公倍数的算法。
学习心得:通往罗马的路有很多条,我们的目的不在于找到路,而是找到最近的一条,即使有别的求解最大公约数的方法,但是我们要择优选取。