方法一:(最简单粗暴的二维数组版)
#include<stdio.h>
#define maxn 1000
long long a[maxn][maxn];
int main(){
int n;
scanf("%d",&n);
memset(a,0,sizeof(a));
int i,j;
for(i=0;i<n;++i){
for(j=0;j<=i;++j){
if(!j || j==n-1){
a[i][j]=1;
printf("%d ",a[i][j]);
}
else{
a[i][j]=a[i-1][j]+a[i-1][j-1];
printf("%d ",a[i][j]);
}
}
printf("\n");
}
return 0;
}
方法二:(一维数组递归版)
#include<stdio.h>
#define maxn 1000
long long a[maxn];
int yh(int x){
if(x<1) return -1;
if(x==1) {
a[0]=1;
return 0*printf("%d\n",a[0]=1);
}else{
yh(x-1);
int