DHU OJ 基本練習 59 數字金字塔

2021-10-02 01:58:23 字數 1252 閱讀 8418

考慮在下面被顯示的數字金字塔(第n行有n列)。寫乙個程式來計算從最高點開始在底部任意處結束的路徑經過數字的和的最大。每前進一步可以走到它的正下方或者右下方(往下一行、往右一列)的位置。

3 88 1 0

2 7 4 4

4 5 2 6 5

在上面的樣例中,從7 到 3 到 8 到 7 到 5 的路徑產生了最大和:30

第乙個行包含 r(1<= r<=1000) ,表示行的數目。後面每行為這個數字金字塔特定行包含的整數。所有的被**的整數是非負的且不大於100。

輸出僅一行,包含那個可能得到的最大的和。67

3 88 1 0

2 7 4 100

4 5 2 6 5

3 2 5 8 7 6

這道題的思路其實很簡單。

if(j==0) a[i][j]+=a[i-1][j];

else if(a[i-1][j]>a[i-1][j-1])

a[i][j]+=a[i-1][j];

else a[i][j]+=a[i-1][j-1];

這題考察的是二維陣列,還有乙個重點是:

如果陣列大小較大(10^6級別)需要將其定義在主函式外面,否則程式異常退出。

函式內部申請的區域性變數來自系統棧,允許申請的空間較小;函式外部的申請的全域性變數來自靜態儲存區,允許申請的空間較大。>>參考

本題定義的陣列是10^3*10^3的,所以必須定義成全域性的,否則異常退出。

re:程式執行時錯誤。可能的原因:1、main函式return的不是0或者忘記寫return 0語句; 2、除0或指標錯誤等原因造成程式崩潰。

具體資訊如下:

測試用例id為2202,2203,2205,2207,2924,2925,執行時錯誤

執行時錯誤

執行時錯誤

執行時錯誤

執行時錯誤

執行時錯誤

執行時錯誤

#include#includeint a[1000][1000];

int main() }

int max_s = -1;

for(i=0;imax_s) max_s = a[r-1][i];

printf("%d\n",max_s);

return 0;

}

59 數字金字塔

59 數字金字塔 問題描述 考慮在下面被顯示的數字金字塔 第n行有n列 寫乙個程式來計算從最高點開始在底部任意處結束的路徑經過數字的和的最大。每前進一步可以走到它的正下方或者右下方 往下一行 往右一列 的位置。3 88 1 0 2 7 4 4 4 5 2 6 5 在上面的樣例中,從7 到 3 到 8...

59 數字金字塔

59 數字金字塔 問題描述 考慮在下面被顯示的數字金字塔 第n行有n列 寫乙個程式來計算從最高點開始在底部任意處結束的路徑經過數字的和的最大。每前進一步可以走到它的正下方或者右下方 往下一行 往右一列 的位置。3 88 1 0 2 7 4 4 4 5 2 6 5 在上面的樣例中,從7 到 3 到 8...

DHU OJ 基本練習 4 溫度轉換

從鍵盤輸入乙個攝氏溫度,要求轉換成華氏溫度輸出。攝氏溫度轉換為華氏溫度的公式為 其中c表示攝氏溫度,f表示華氏溫度 f 9 5 c 32 輸入乙個攝氏溫度 輸出對應的華氏溫度。注意,輸出結果保留兩位小數,小數點後第三位四捨五入到小數點後第二位,但小數點後總共輸出6位 即最後需要輸出4個0 26.67...