首页 > 其他 > 详细

求N个数的最大公约数

时间:2014-05-07 19:28:44      阅读:314      评论:0      收藏:0      [点我收藏+]

 

bubuko.com,布布扣

bubuko.com,布布扣
#include <stdio.h>
#include <assert.h>
#define N 100
int gcd(int x,int y)
{
    int t;
    if(x<y)
    {
        t=x;
        x=y;
        y=t;
    }
    return (y==0)?x:gcd(y,x%y); 
}
int ngcd(int *p, int k)
{
    if (k == 1)
        return *p;
     return gcd(p[k-1],ngcd(p, k-1));
}
void main()
{
    int i,n,a[N];
    int result;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    result=ngcd(a,n);
    printf("%d\n",result);
    getchar();
    getchar();
}
View Code

除了递归,也可以用循环来实现,核心代码如下:

bubuko.com,布布扣
g = data[0];
    for(i = 1; i < n; ++i)
        g = gcd(g, data[i]);
View Code

 

 

 

求N个数的最大公约数,布布扣,bubuko.com

求N个数的最大公约数

原文:http://www.cnblogs.com/localhoster/p/3709695.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!