题目:求最大公约数
输入一组正整数(数量小于20),输出其最大公约数。
输入:121 33 44 11 1111
输出:11
基本思路:
从第一个数开始,和第二个数比较找它两的最大公约数,然后找出的最大公约数和第三个数比较,依次类推
#include<stdlib.h>
#include<stdio.h>
int a[30];
int gcd(int a,int b){ return b==0?a:gcd(b,a%b);}
int main()
{
freopen("a.in","r",stdin);
int n;
int i=-1;
while(~scanf("%d",&a[++i]))
;
n=i;
int t;
for(int j=1;j<n;++j)
{
t=gcd(a[0],a[j]);
a[0]=t;
}
printf("%d\n",t);
return 0;
}
原文地址:http://blog.csdn.net/wdkirchhoff/article/details/42100583