題目出自 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