编程输出形如上面的程序。
输出n行的数字,第i行有2*i-1个数字,第一行的1出现在第n个位置上(行列都从1开始计数),从第2行开始i行j列的元素等于i-1行j-1列的元素与i+1行j+1列的元素之和,然后数字之间输出空格即可。
#include<iostream> #include<cstring> using namespace std; #define N 20 int bsk[N][N]; int main(){ int number; cout<<"请输入一个数字:"<<endl; cin>>number; memset(bsk,0,N*N*sizeof(int)); int i,j; bsk[1][number]=1; for(i=2;i<=number;i++) { int n=i; j=number+1-i; while(n--) { bsk[i][j]=bsk[i-1][j-1]+bsk[i-1][j+1]; j+=2; } } for(i=1;i<=number;i++) { for(j=1;j<=2*number-1;j++) { if(bsk[i][j]!=0) cout<<bsk[i][j]<<" "; else cout<<" "; if(j==2*number-1) { cout<<endl; break; } } } return 0; }