1. 程式人生 > >算法第三章上機實驗報告

算法第三章上機實驗報告

str style 二維數組 -a class 遇到 esp 基本 user

1.實踐題目:7-1 數字三角形 (30 分)

2.問題描述:

給定一個由 n行數字組成的數字三角形如下圖所示。試設計一個算法,計算出從三角形 的頂至底的一條路徑(每一步可沿左斜線向下或右斜線向下),使該路徑經過的數字總和最大。

技術分享圖片

3.算法描述:

#include<iostream>
using namespace std;
int main()
{
    int n,a[101][101],d[101][101],i,j;
    cin >> n;
    for(i=1;i<=n;i++)
        for(j=1;j<=i;j++)
        cin 
>> d[i][j]; for(j=1;j<=n;j++) a[n][j]=d[n][j]; for(i=n-1;i>=1;i--) for(j=1;j<=i;j++) { if(a[i+1][j+1]>a[i+1][j]) a[i][j]=d[i][j]+a[i+1][j+1]; else a[i][j]=d[i][j]+a[i+1][j]; } cout << a[1][1]; return
0; }

4.算法時間及空間復雜度分析:時間復雜度是O(n*n),因為只用二維數組所以為O(n*n)

5.心得體會:基本沒遇到什麽大問題,對這類題型更熟悉了

算法第三章上機實驗報告