问题及代码:
/*
*Copyright (c)2014,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:gcds.cpp
*作 者:单昕昕
*完成日期:2014年11月6日
*版 本 号:v1.0
*
*问题描述:输入输入4个数,并求出其最大公约数。
*程序输出:4个数的最大公约数。
*/
#include <iostream>
using namespace std;
int gcds(int x,int y,int z,int w) //自定义函数的原型(即函数声明)//定义用于求四个数的最大公约数的函数,函数只管求值,不管输出。输出由main{}完成
{
int g1,g2,g3,r1,r2,r3;
while (y!=0) //循环语句求前两个数的最大公约数。
{
r1=x%y;
x=y;
y=r1;
}
g1=x;
while (w!=0) //循环语句求后个数的最大公约数。
{
r2=z%w;
z=w;
w=r2;
}
g2=z;
while (g2!=0) //循环语句求前面所求两个数的最大公约数。
{
r3=g1%g2;
g1=g2;
g2=r3;
}
g3=g1;
return (g1); //这里要使函数值返回为最大公约数。
}
int main()
{
int a,b,c,d,g;
cin>>a>>b>>c>>d;
g=gcds(a,b,c,d);
cout<<"最大公约数是: "<<g;
return 0;
}
运行结果:
知识点总结:
需要多次重复求最大公约数。
学习心得:
基本上是求两个数最大公约数的方法,只是判断执行的次数增多。不知道如果要求很多个数的最大公约数有木有简便一点的方法啊……