1. 程式人生 > >藍橋杯:BASIC-6 楊輝三角形

藍橋杯: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,中間的元素=上面元素+左上角元素

#include<iostream>
using namespace std;
const int N = 40;
int main(void)
{
	int n;
	int a[N][N];
	cout << "請輸入行數(1-34):";
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		a[i][0] = 1;
		a[i][i] = 1;
		for (int j = 1; j < i; j++)
		{
			a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
		}
	}
	for (int i = 0; i < n; i++)
	{
		cout << a[i][0];
		for (int j = 1; j <= i; j++)
			cout << " " << a[i][j];
		cout << endl;
	}
	system("pause");
	return 0;
}