天天看點

藍橋杯 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。

題意:給定一個數字,然後求出該數字對應的楊輝三角形

思路:首先對二維數組初始化,所有都指派為0,然後根據題意對相信坐标的值進行計算,最後按照要求列印出楊輝三角形即可

代碼:

#include <iostream>
#include<algorithm>
#include<stdio.h>
using namespace std;
int v[34][34];
int main(int argc, char** argv) {
	fill(v[0],v[0]+34*34,0);//給所有的數組元素賦初始值為0 
	int n=0;
	cin>>n;
	for(int i=0;i<n;i++){//給楊輝三角形指派 
		for(int j=0;j<=i;j++){
			if(j==0)v[i][j]=1;
			else{
				v[i][j] = v[i-1][j]+v[i-1][j-1];//如果j不是為0,則對應的值為肩上兩數之和 
			}
		}
	} 
	for(int i=0;i<n;i++){//列印楊輝三角形 
		for(int j=0;j<=i;j++){
			printf("%d%s",v[i][j],j==i?"\n":" ");//沒有到達最後一個就列印值和空格,否則列印值和換行 
		} 
	} 
	return 0;
}
           

繼續閱讀