满意答案
lzh0908a
2017.11.20
采纳率:52% 等级:13
已帮助:4361人
#include
//辗转相除求最大公约
//a * b = 最大公约 * 最小公倍
int gcd(int a, int b)
{
if (b == 0)
return a;
return gcd(b, a%b);
}
int ngcd(int *pa, int n)
{
if (n == 1)
return *pa;
return (gcd(pa[n - 1], ngcd(pa, n - 1)));
}
int lcm(int a, int b)
{
return a*b / gcd(a, b);
}
int nlcm(int *pa, int n)
{
if (n == 1)
return *pa;
return lcm(pa[n - 1], nlcm(pa, n - 1));
}
int main()
{
int a, b, x;
int pa[10];
printf("请输入10个数:\n");
for (int i = 0; i
scanf("%d", &pa[i]);
x = nlcm(pa, 10);
printf("最小公倍数是:%d\n", x);
return 0;
}
00分享举报