欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

杨辉三角(C语言)

程序员文章站 2022-05-18 19:13:52
杨辉三角 杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡(1623 1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。帕斯卡的发现比杨辉要迟393年,比贾宪迟600年。 如图: 它的规律是,除了每一行的第一 ......

杨辉三角

杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡(1623----1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。帕斯卡的发现比杨辉要迟393年,比贾宪迟600年。
如图:
杨辉三角(C语言)

它的规律是,除了每一行的第一个数和最后一个数,其余每个数等于上面两个数字值之和。

c语言实现:

#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");       //每打印一行进行换行 
    }
}

输出:
杨辉三角(C语言)