iT邦幫忙

1

[C++][APCS] 最大和

題目出自 APCS 網站 > 歷次試題 > 2016-10-29_實作題 > 第二題 最大和
連結

解答僅供參考

解答:

#include <stdio.h>
#include <stdlib.h>
#include <algorithm>

using namespace std;

int main(void)
{
    int n, m;

    scanf("%d %d", &m, &n);

    //將儲存最大值的陣列歸零
    int max_num[m];
    for (int i = 0; i < m; i++)
    {
        max_num[i] = 0;
    }

    //找出每一群數字的最大值
    int num;
    int sum = 0;
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            scanf("%d", &num);
            max_num[i] = max(max_num[i], num);
        }
        sum += max_num[i];
    }

    printf("%d\n", sum);

    //找出可被最大總和整除的被選擇數字
    bool hasDiv = false;
    for (int i = 0; i < m; i++)
    {
        if (sum % max_num[i] == 0)
        {
            if (hasDiv)
            {
                printf(" ");
            }
            printf("%d", max_num[i]);

            hasDiv = true;
        }
    }

    //所有數字都不能整除
    if (!hasDiv)
    {
        printf("-1");
    }

    system("pause");
    return 0;
}

輸入:

3 2
1 5
6 4
1 1
4 3
6 3 2
2 7 9
4 7 1
9 5 3

輸出:

12
6 1
31
-1

1 則留言

【**此則訊息已被站方移除**】

我要留言

立即登入留言