楊輝三角,是二項式係數在三角形中的一種幾何排列,中國南宋數學家楊輝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