楊輝三角形 簡單的動態規劃

2021-10-05 04:33:26 字數 1367 閱讀 9942

資源限制

時間限制:1.0s 記憶體限制:256.0mb

問題描述

楊輝三角形又稱pascal三角形,它的第i+1行是(a+b)i的展開式的係數。

它的乙個重要性質是:三角形中的每個數字等於它兩肩上的數字相加。

下面給出了楊輝三角形的前4行:

1 11 2 1

1 3 3 1

給出n,輸出它的前n行。

輸入格式

輸入包含乙個數n。

輸出格式

輸出楊輝三角形的前n行。每一行從這一行的第乙個數開始依次輸出,中間使用乙個空格分隔。請不要在前面輸出多餘的空格。

樣例輸入

4樣例輸出

11 1

1 2 1

1 3 3 1

資料規模與約定

1 <= n <= 34。

**

#include

#include

#include

using

namespace std;

intmain()

for(

int i=

0;i)else

if(i==0)

else}}

for(

int i=

0;i)printf

("\n");

}return0;

}

首先說一下這道題把,也就是楊輝三角,利用dp[i][j]=dp[i-1][j-1]+dp[i-1][j]這麼乙個式子就解決了這道題,道理很淺顯易懂,所以也就不做過多解釋了。

但是,這裡我踩的坑是二維陣列初始化為0的這乙個過程。注意了,我說一下我踩的坑:

第乙個

memset

(dp,0,

sizeof

(dp)

)

這裡dp是在分配完所有空間之後進行的初始化,但是出錯了,原因是memset只能初始化一維向量(針對動態陣列而言),這裡是二維,故會出錯。

第二個

for

(int i=

0;i)

這樣的形式,好像滿足了上面說的初始化一維陣列的問題,但竟然又出錯了!!!百思不得其解,沒辦法,經過查閱部落格,對於這種動態開闢的多維陣列,只能用下面這個方法

int

**dp=

newint

*[n]

;for

(int i=

0;i)

楊輝三角形

關於楊輝三角的論述 問題描述 楊輝三角形又稱pascal 三角形,它的第 i 1行是 a b i 的展開式的係數。它的乙個重要性質是 三角形中的每個數字等於它兩肩上的數字相加。下面給出了楊輝三角形的前4行 1 11 2 1 1 3 3 1 給出n,輸出它的前n行。輸入格式 輸入包含乙個數n。輸出格式...

楊輝三角形

基礎練習 楊輝三角形 時間限制 1.0s 記憶體限制 256.0mb 錦囊1 錦囊2 錦囊3 問題描述 楊輝三角形又稱pascal三角形,它的第i 1行是 a b i 的展開式的係數。它的乙個重要性質是 三角形中的每個數字等於它兩肩上的數字相加。下面給出了楊輝三角形的前4行 1 11 2 1 1 3...

楊輝三角形

在螢幕上顯示楊輝三角形 問題分析與演算法設計 楊輝三角形中的數,正是 x y 的n次方冪展開式中各項的係數。從楊輝三角形的特點出發,可以總結出 1 第n行有n 1個值 設起始行為第0行 2 對於第n行的第j個值 n 2 當 j 1 或 j n 1 時 其值為1 當 j!1 且 j!n 1時 其值為第...