题目:求最大公约数
输入一组正整数(数量小于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