1. 程式人生 > >求n個數的最小公倍數與最大公約數

求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