經典算法——巴斯卡三角形

編程輸出形如上面的程序。ios

輸出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;
}
相關文章
相關標籤/搜索