數字三角形最大路徑

2021-09-13 19:22:27 字數 937 閱讀 2239

問題描述

3     8

8      1      0

2     7      4       4

4     5      2      6       5

圖中給出了乙個數字三角形。從三角形的頂部到底部有很多條不同的路徑。對於每條路徑,把路徑上面的數加起來可以得到乙個和,你的任務就是找到最大的和。

輸入形式

輸入的是一行是乙個整數n (1 < n <= 100),給出三角形的行數。下面的n行給出數字三角形。數字三角形上的數的範圍都在0和100之間。

輸出形式

輸出最大的和。

樣例輸入

3 88 1 0

2 7 4 4

4 5 2 6 5

樣例輸出

乍一看很簡單的一道題,其實可以引申為求完全二叉樹的權值問題。

該題的思路就是列舉,只不過如果從上到下的話並不利於統計,而且最大路徑的可能性還沒有辦法周全地考慮到,所以合適的方法是從下往上尋找最大路徑。列舉最下面一行的各個數,以它們為起點,逐步向上,這樣判斷上面的兩個數哪個較大就很容易了。越往上可能性越少,當找到第乙個數時,迴圈結束,用乙個陣列儲存這個路徑即可。最後對該組各節點的路徑比較,得出最大路徑。

**如下:

#include

int main() ,num[101]=;

int n,i,j,y,max;

scanf("%d",&n);

for(i=0;i=0;i--)

else}}

max=num[0];

for(i=1;imax) max=num[i];

printf("%d",max);

//    for(i=0;i親測可行。

數字三角形

題目描述 示出了乙個數字三角形。請編乙個程式計算從頂至底的某處的一條路 徑,使該路徑所經過的數字的總和最大。每一步可沿左斜線向下或右斜線向下走 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 ...