求n個數的最小公倍數與最大公約數
阿新 • • 發佈:2019-02-08
兩種方法,一是常規做法,二是遞迴做法;
#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