华为机试—多个数的最大公约数

来源:互联网 发布:淘宝漏洞1元6s的网址 编辑:程序博客网 时间:2024/06/14 03:38

题目:求最大公约数

输入一组正整数(数量小于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;}


0 0
原创粉丝点击