楊輝三角(C語言)

楊輝三角

楊輝三角,是二項式係數在三角形中的一種幾何排列,中國南宋數學家楊輝1261年所著的《詳解九章算法》一書中出現。在歐洲,帕斯卡(1623----1662)在1654年發現這一規律,因此這個表又叫作帕斯卡三角形。帕斯卡的發現比楊輝要遲393年,比賈憲遲600年。
如圖:
算法

它的規律是,除了每一行的第一個數和最後一個數,其他每一個數等於上面兩個數字值之和。ui

C語言實現:code

#include <stdio.h>

void yanghui(int number);

int main(void){
    int number = 0;
    printf("請輸入要打印的層數:");
    scanf("%d",&number);
    yanghui(number);
}

void yanghui(int number){
    int i , j , k , z;
    int array[100][100] = {0};
    for (i = 0; i < number; i++)    //爲每一行的第一個和最後一個數賦值1 
    {
        for (j = 0; j <= i; j++)
        {
            array[i][0] = 1;
            if (i == j)
            {
                array[i][j] = 1;
            }
        }
    }
    for( i = 0 ; i < number ; i ++)     //控制行數 
    {
        for( k = 0 ; k <= i ; k ++)     //控制列數 
        {
            if(k == 0)      //若是是每行第一個數就打印1 
            {
                for(z = 0 ; z < number - i ; z ++)      //控制每一行前面的空格 
                {
                    printf(" ");
                }
                printf("%d",array[0][0]);
                printf(" ");
            }else if(k == i)    //若是是每行的最後一個就打印1 
            {
                printf("%d",array[0][0]);
            }
            if(k != 0 && k != i)    //若是不是每行的第一個也不是最後一個就打印上一行兩個數的和 
            {
                array[i][k] = array[i-1][k-1] + array[i-1][k];
                printf("%d",array[i][k]);
                printf(" ");
            }
        }
        printf("\n");       //每打印一行進行換行 
    }
}

輸出:
blog

相關文章
相關標籤/搜索