/* 杨辉三角:https://www.cnblogs.com/kevin-lee123/p/7096090.html */ /* 此类问题采用递归+dp,可以减少子问题重复计算的次数 */ #include <cstdio> #include <iostream> using namespace std; int dp[1000][1000]; int YH(int m,int n){ if(dp[m][n]!=0) //dp思想:减少重复计算子问题 return dp[m][n]; else{ if(n==0||m==n){ dp[m][n]=1; return dp[m][n]; } else{ dp[m][n] = dp[m-1][n-1]+dp[m-1][n]; return dp[m][n]; } } } int main(){ int n; cin>>n; for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ dp[i][j]=0; } } for(int i=1;i<n;i++){ for(int j=0;j<=i;j++){ if(j!=0) cout<<" "; cout<<YH(i,j); } cout<<"\n"; } return 0; }