問題描述
楊輝三角形又稱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;
}