求n個數的最小公倍數與最大公約數

兩種方法,一是常規做法,二是遞歸做法;

#include <cstdio>
#include <iostream>
using namespace std;
int v[4]={3,4,5,6};
int gcd(int a,int b)
{
    return b==0?a:gcd(b,a%b);
}              
int lcm(int a,int b)
{
    return a*b/gcd(a,b);
}
int ngcd(int v[],int n)
{
    /*int a=v[0];
    int b=v[1];
    int c=gcd(a,b);
    for(int i=2;i<n;i++)
    {
        c=gcd(c,v[i]);
    }
    return c;*/
    if(n==1)
        return v[0];
    return gcd(v[n-1],ngcd(v,n-1));
}
int nlcm(int v[],int n)
{
    /*int a=v[0];
    int b=v[1];
    int c=lcm(a,b);
    for(int i=2;i<n;i++)
    {
        c=lcm(c,v[i]);  
    } 
    return c;*/
    if(n==1)
        return v[0];
    return lcm(v[n-1],nlcm(v,n-1));
}
int main()
{

    printf("%d\n",ngcd(v,4));
    printf("%d",nlcm(v,4));
    return 0;
}

結果是:1 60

僅代表個人觀點,歡迎交流探討,勿噴~~~

這裏寫圖片描述
PhotoBy:WLOP

http://weibo.com/wlop

發佈了141 篇原創文章 · 獲贊 50 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章