题解:P5732 【深基5.习7】杨辉三角

· · 题解

杨辉三角满足:

我们可以看作每一行最前面都有一个 0,每一行后面也都有一个 0。即:

0 1 0
0 1 1 0
0 1 2 1 0
0 1 3 3 1 0
0 1 4 6 4 1 0
0 1 5 10 10 5 1 0

那么除 0 和第一行的 1 外所有三角中的数都满足 a_{k,i}=a_{k-1,i-1}+a_{k-1,i}

那么按上式递推即可。

#include<bits/stdc++.h>
using namespace std;

const int N=1002;
int a[N][N];

int main(){
    int n;cin>>n;a[1][1]=1;cout<<"1\n";
    for(int i=2; i<=n; i++,cout<<"\n")
        for(int j=1; j<=i; j++){
            a[i][j]=a[i-1][j-1]+a[i-1][j];
            cout<<a[i][j]<<" ";
        }
    return 0;
}