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