給定乙個由n行數字組成的數字三角形,如下:(如果是等腰三角形,轉化為如下直角三角形。演算法一樣)
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
設計乙個演算法,計算出從三角形的頂至底的一條路徑,使該路經經過的數字總和最大。(規定路線只能往下和往右)
輸入樣例
//第一行輸入三角形的總行數57
3881
0274
4452
65
輸出結果:
30
源**:
#include
#include
#define m 10
int map[m]
[m];
//輸入三角形數字並存到乙個二位陣列中
intscan_f
(int m)}}
//比較兩個數的大小函式,並返回最大的乙個數值
intmax
(int num1,
int num2)
//尋找過程函式。找出由頂至底行的乙個數字經過路經最大總和的值
//通過遞迴方式尋找。
//到達某個數字的最大路徑:當前數字的值(map[m][n]) 加上 能夠到達該數字的數(map[m-1][n]或map[m-1][n-1])最大路徑值,
//在(map[m-1][n])最大路徑值 和 (map[m-1][n-1])最大路徑值中找較大的乙個返回
intfindpass
(int m,
int n)
//此函式是為底行每乙個數字尋找一條路經的總和最大(從頂部到最底行的路經)
intfind
(int m)
return max;
}int
main()
數字三角形問題
數字三角形問題 標籤 動態規劃 雜談分類 演算法設計 34 5 11 9 8 15 21 13 4 這是乙個數字三角形。請編乙個程式計算從頂至底的某處的一條路徑,使該路徑所經過的數字的總和最大。每一步可沿左斜線向下或右斜線向下走 1 三角形行數 200 三角形中的數字為整數0,1,99 輸入格式 第...
數字三角形問題
給定乙個由n行數字組成的數字三角形,設計乙個演算法,計算出從三角形的頂至底的一條路徑,使該路徑經過的數字總和最大。0,0 1,0 1,1 2,0 2,1 2,2 3,0 3,1 3,2 3,3 思路 動態規劃 動態方程 sum i,j a i,j max sum i,j 表示從 i,j 出發時能得到...
數字三角形問題
time limit 1000ms memory limit 65536k 給定乙個由n行數字組成的數字三角形如下圖所示。試設計乙個演算法,計算出從三角形的頂至底的一條路徑,使該路徑經過的數字總和最大。對於給定的由n行數字組成的數字三角形,計算從三角形的頂至底的路徑經過的數字和的最大值。輸入資料的第...