題目信息
問題描述
楊輝三角形又稱Pascal三角形,它的第i+1行是(a+b)i的展開式的係數。它的一個重要性質是:三角形中的每個數字等於它兩肩上的數字相加。
下面給出了楊輝三角形的前4行:
1
1 1
1 2 1
1 3 3 1
給出n,輸出它的前n行。
輸入格式
輸入包含一個數n。
輸出格式
輸出楊輝三角形的前n行。每一行從這一行的第一個數開始依次輸出,中間使用一個空格分隔。請不要在前面輸出多餘的空格。
樣例輸入
4
樣例輸出
1
1 1
1 2 1
1 3 3 1
數據規模與約定
1 <= n <= 34。
解題思路
主要考察
本題給出的考察關鍵字是:基礎練習、二維數組
。
解題思路
首先我們要注意該題目的數據規模:1 <= n <= 34
。所以我們先開一個Pascal[35][35]
大小的數組。然後根據楊輝三角的特徵,我們首先將每一行的第一個數和該行的最後一個數填上 1 。然後我們根據楊輝三角的定義從第二行開始求每一行的數。最後輸出即可。
解題代碼
#include<iostream>
using namespace std;
int main(){
int Pascal[35][35] = {0};
int n;
cin>>n;
for(int i=0;i<n;i++){
Pascal[i][0] = 1;
Pascal[i][i] = 1;
}
for(int i=2;i<n;i++){
for(int j=1;j<=i;j++){
Pascal[i][j] = Pascal[i-1][j-1] + Pascal[i-1][j];
}
}
for(int i=0;i<n;i++){
for(int j=0;j<=i;j++){
cout<<Pascal[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
以上就是對於本題的解題思路了。如果你覺得我的文章對你有用請點個贊支持一下吧,喜歡我寫的文章那麼請點個關注再走鴨。如果此文章有錯誤或者有不同的見解歡迎評論或者私信。
我是ACfun:一個成長中的程序猿,感謝大家的支持。