Trong bài toán này, cho ma trận mat[][] kích thước N*N. Nhiệm vụ là tìm hàng có tổng lớn nhất.
Ví dụ minh họa:
Đầu vào
mat[][] = { {8, 4, 1, 9}, {3, 5, 7, 9}, {2, 4, 6, 8}, {1, 2, 3, 4} }Đầu ra
Row 2, sum 24
Giải thích
Row 1: sum = 8+4+1+9 = 22 Row 2: sum = 3+5+7+9 = 24 Row 3: sum = 2+4+6+8 = 20 Row 4: sum = 1+2+3+4 = 10
Phương pháp giải
Tính tổng từng hàng, theo dõi tổng lớn nhất. Sau khi duyệt xong trả về hàng có tổng lớn nhất.
Chương trình minh họa:
Ví dụ
#include <iostream>
using namespace std;
#define R 4
#define C 4
void findMax1Row(int mat[R][C]) {
int maxSumRow = 0, maxSum = -1;
for (int i = 0; i < R; i++) {
int sum = 0;
for(int j = 0; j < C; j++) sum += mat[i][j];
if(sum > maxSum){ maxSum = sum; maxSumRow = i; }
}
cout<<"Row : "<<(maxSumRow+1)<<" has the maximum sum which is "<<maxSum;
}
int main() {
int mat[R][C] = { {8, 4, 1, 9}, {3, 5, 7, 9}, {2, 4, 6, 8}, {1, 2, 3, 4} };
findMax1Row(mat);
return 0;
}Kết quả
Row : 2 has the maximum sum which is 24