C++数字三角形问题

it2023-11-28  76

问题描述:给定一个由n行数字组成的数字三角形,试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大。 数字三角形如下所示:

输入示例: 5 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 输出: 30

#include <iostream> using namespace std; int main() { int t[100][100] = { 0 }; int n; cin >> n; for (int i = 0; i < n; i++) { for (int j = 0; j < i + 1; j++) cin >> t[i][j]; } for (int i = n-2; i >=0; i--) { for (int j = n - 2; j >=0; j--) { t[i][j] = max((t[i][j] + t[i + 1][j]), (t[i][j] + t[i + 1][j + 1])); } } cout << t[0][0]<<endl; return 0; }
最新回复(0)