藍橋杯練習系統 基礎練習:BASIC-6 楊輝三角形

題目信息

問題描述

楊輝三角形又稱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:一個成長中的程序猿,感謝大家的支持。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章