算法第三章上機實驗報告
阿新 • • 發佈:2018-11-11
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]; return0; }
4.算法時間及空間復雜度分析:時間復雜度是O(n*n),因為只用二維數組所以為O(n*n)
5.心得體會:基本沒遇到什麽大問題,對這類題型更熟悉了
算法第三章上機實驗報告