圖片發(fā)自簡書App
以上就是題目
明明只是求最小公倍數(shù),我卻轉(zhuǎn)了個(gè)大彎兒。
話不多說先貼上代碼
#include<stdio.h>
#include<string.h>
int arr_max(int arr[], int n)
{
int i, max = 0;
for(i = 0; i < n; i++)
{
if(max < arr[i])
{
max = arr[i];
}
}
return max;
}
int min_gongbeishu(int arr[], int n, int in_max)
{
int i;
for(i = in_max; ; i++)
{
int j;
int count = 0;//統(tǒng)計(jì) big 是 arr[] 的倍數(shù)的個(gè)數(shù)
for(j = 0; j < n; j++)
{
if(i % arr[j] == 0)
{
count++;
}
}
if(count == n)
{
return i;
}
}
}
int main()
{
int a[3];//每組人數(shù)
int i;
for(i = 0; i < 3; i++)
scanf("%d", &a[i]);
int in_max = arr_max(a, 3);
//求最小公倍數(shù)
int ans = min_gongbeishu(a, 3, in_max);
printf("%d\n", ans);
return 0;
}
補(bǔ)充一種 int arr_max(int arr[], int n) 的寫法
int arr_max(int *arr, int n)
{
int max = 0;
for(int i = 0; i < n; i++)
{
if(max < *(arr + i))
{
max = *(arr);
}
}
return max;
}
最大公約數(shù)
int gcd(int a, int b)
{
if(a % b)
{
gcd(b, a % b);
} else {
return b;
}
}
最小公倍數(shù)
int lcm(int a, int b)
{
return a * b / gcd(a, b);
}