請編乙個程式計算從頂到底的某處的一條路徑,使該路徑所經過的數字總和最大。只要求輸出總和。
1、 一步可沿左斜線向下或右斜線向下走;
2、 三角形行數小於等於100;
3、 三角形中的數字為0,1,…,99;
測試資料通過鍵盤逐行輸入,如上例資料應以如下所示格式輸入:57
3 88 1 0
2 7 4 4
4 5 2 6 5
正推:#include
#include
using namespace std;
const int maxn = 1005;
int a[maxn][maxn],f[maxn][maxn],n;
int main()
逆推:#include
#include
using namespace std;
const int maxn = 1005;
int a[maxn][maxn],f[maxn][maxn],n;
int max(int a,int b)
int main() {
int i; cin >> n;
for( i = 1;i <= n;i ++)
for(int j = 1;j <= i;j ++)
cin >> a[i][j];
for( i = 1;i <= n;i ++)
f[n][i] = a[n][i];
for( i = n-1;i >=1;i --)
for(int j = 1;j <= i;j ++)
f[i][j]=max(f[i+1][j],f[i+1][j+1])+a[i][j];
cout << f[1][1] << endl;
return 0;
數字三角形
題目描述 示出了乙個數字三角形。請編乙個程式計算從頂至底的某處的一條路 徑,使該路徑所經過的數字的總和最大。每一步可沿左斜線向下或右斜線向下走 1 三角形行數 25 三角形中的數字為整數 1000 輸入第一行為n,表示有n行 後面n行表示三角形每條路的路徑權 輸出路徑所經過的數字的總和最大的答案 樣...
數字三角形
description 有如下所示的數塔,要求從頂層走到底層,若每一步只能走到相鄰的結點,則經過的結點的數字之和最大是多少?input 輸入資料首先包括乙個整數c,表示測試例項的個數,每個測試例項的第一行是乙個整數n 1 n 100 表示數塔的高度,接下來用n行數字表示數塔,其中第i行有個i個整數,...
數字三角形
3 8 8 1 0 2 7 4 4 4 5 2 6 5 上圖給出了乙個數字三角形。從三角形的頂部到底部有很多條不同的路徑。對於每條路徑,把路徑上面的數加起來可以得到乙個和,和最大的路徑稱為最佳路徑。你的任務就是求出最佳路徑上的數字之和。input 1 5 7 3 8 8 1 0 2 7 4 4 4 ...