对以下数塔,进行动态规划的填表:
对每一个数塔进行求解:
代码:
#include <iostream>
using namespace std;
const int n=5;
int DataTower(int d[n][n])
{
int maxAdd[n][n]={0},path[n][n]={0}; //maxAdd二维数组存储最大数值 path数组存储确实每一层决策的下标,输出路径信息
int i,j;
for(j=0;j<n;j++) //对初始化,即最底层的值赋给maxAdd[][];
maxAdd[n-1][j]=d[n-1][j];
for(i=n-2;i>=0;i--)
for(j=0;j<=i;j++)
if(maxAdd[i+1][j]>maxAdd[i+1][j+1])
{
maxAdd[i][j]=d[i][j]+maxAdd[i+1][j];
path[i][j]=j;
}
else
{
maxAdd[i][j]=d[i][j]+maxAdd[i+1][j+1];
path[i][j]=j+1;
}
cout<<"路径为:"<<