一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路
径,把路径上面的数加起来可以得到一个和,和最大的路径称为最佳路径。任务就是求
出最佳路径上的数字之和。
注意:路径上的每一步只能从一个数走到下一层上和它最近的左边的数或者右边的数。
以下是代码实现
<strong><span style="font-size:18px;">#include <iostream>
using namespace std;
#define MAX 100
int Arr[MAX][MAX];
size_t N = 0;
size_t MaxSum(int col,int row)
{
if (col == N)
{
return Arr[col][row];
}
int _LeftSum = MaxSum(col+1,row);//向左下角递归
int _RightSum = MaxSum(col+1,row+1);//向右递归
return _LeftSum > _RightSum ? _LeftSum + Arr[col][row] : _RightSum + A