1. 程式人生 > >C:列印楊輝三角

C:列印楊輝三角

//列印楊輝三角,n為行數
void printPascalTriangle(int n)
{
    int size=n*2-1;
    int triangle[n][size];
    
    for (int i=0; i<n; i++) {
        for (int j=0; j<size; j++) {
            //兩斜線為1
            if (j==n-i-1||j==size-1-(n-i-1)) {
                triangle[i][j]=1;
            }//其餘為肩上兩值之和
            else if(j>n-1-i&&j<size-1-(n-i-1)&&(j-(n-1-i))%2==0){
                triangle[i][j]=triangle[i-1][j-1]+triangle[i-1][j+1];
            }
            else{
                triangle[i][j]=0;
            }
        }
    }
    
    //列印
    for (int j=0; j<n; j++) {
        for (int k=0; k<size; k++) {
            if (triangle[j][k]==0) {
                printf(" ");
            }
            else{
                printf("%d",triangle[j][k]);
            }
            
        }
        printf("\n");
    }
}