藍(lán)橋杯 核桃的數(shù)量

圖片發(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);
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容