100532961.jpg

编程输出形如上面的程序。

输出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;
}