/*
*copyright (c)2014,烟台大学计算机学院
*All rights reserved
*文件名称:qwe.cpp
*作者:孙春红
*完成日期:2014年11月10号
*版本号:v1.0
*问题描述:通过函数,求四个数的最大公约数
*
*/
#include <iostream>
using namespace std;
int gcd (int ,int );
int gcds (int,int,int,int);
int main()
{
int a,b,c,d;
cin>>a>>b>>c>>d;
cout<<"最大公约数是: "<<gcds(a,b,c,d)<<endl;
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 p,int q,int x,int y)
{
int g,g1,g2;
g1=gcd (x,y);
g2=gcd (p,q);
g=gcd(g1,g2);
return (g);
}
运行结果:
知识点总结:
学会使用函数求四个数的最大公约数。
学习心得:
了解了在多个函数之间的联系,就如下面的运行界面,声明了三个函数 int main, int gcd,int gcds。开始时,只是想通过求两个数的最大公约数的形式再求四个数的,可是无法运行而且好长一串的代码,并没有正确的理解老师上课所讲的函数的调用,以及形式函数等知识。
例如下面函数代码:
在13行的int x ,int y,只是一个形式参数,并没有确切的值,int gcd 只是提供一个运行公式,在输入四个数的时候,运行完输入的前两个数,得到g1,然后return(x),继续运行下两个数p、q,再看int gcds 函数第27、28行,第28行的p和q仍如x、y一样,通过调用int gcd 函数继续运行p、q,最后分别求g1、g2,再求出g1、g2的最大的公约数g,最后return(g)回到第十行,输出最后结果。