用C语言打印杨辉三角

用C语言打印杨辉三角

杨辉三角,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列。在欧洲,这个表叫做帕斯卡三角形。

这是杨辉三角:

                          1
                         1   1
                       1   2   1
                     1   3   3   1
                   1   4   6   4   1
                 1   5   10  10  5   1
               1   6   15  20  15  6   1
             1   7   21  35  35  21  7   1   
           1   8   28  56  70  56  28  8   1   
         1   9   36  84  126 126 84  36  9   1   
       1   10  45  120 210 252 210 120 45  10  1   
     1   11  55  165 330 462 462 330 165 55  11  1    
   1   12  66  220 495 792 924 792 495 220 66  12  1

概述

  • 前提:端点的数为1.
  • 每个数等于它上方两数之和。
  • 每行数字左右对称,由1开始逐渐变大。
  • 第n行的数字有n项。
  • 第n行数字和为2n-1。
  • 每个数字等于上一行的左右两个数字之和。可用此性质写出整个杨辉三角。即第n+1行的第i个数等于第n行的第i-1个数和第i个数之和,这也是组合数的性质之一。

其实用C语言写出杨辉三角也不难,只要去除它左边的空格然后规律就出来了,像这样:

1
1    1
1    2    1
1    3    3    1
1    4    6    4    1
1    5    10   10   5    1
1    6    15   20   15   6    1
1    7    21   35   35   21   7    1   
1    8    28   56   70   56   28   8    1   
1    9    36   84   126  126  84   36   9    1   
1    10   45   120  210  252  210  120  45   10   1   
1    11   55   165  330  462  462  330  165  55   11   1    
1    12   66   220  495  792  924  792  495  220  66   12   1

下面是笔者写的代码:

/* *title: 打印杨辉三角 *by: 小林 */
#include <stdio.h>
#include <stdlib.h>

const int length = 10;  // 定义杨辉三角的大小

int main(void)
{
    int nums[length][length];
    int i, j;
    /*计算杨辉三角*/ 
    for(i=0; i<length; i++)
    {
        nums[i][0] = 1;
        nums[i][i] = 1;
        for(j=1; j<i; j++)
            nums[i][j] = nums[i-1][j-1] + nums[i-1][j];
    }

    /*打印输出*/ 
    for(i=0; i<length; i++)
    {
        for(j=0; j<length-i-1; j++)
            printf(" ");
        for(j=0; j<=i; j++)
            printf("%-5d ", nums[i][j]);
        putchar('\n');
    }
    getchar();// 暂停 
    return EXIT_SUCCESS;
}

编译环境:Dev-C++ 5.11
运行效果如下:
《用C语言打印杨辉三角》

    原文作者:杨辉三角问题
    原文地址: https://blog.csdn.net/u010431205/article/details/50494639
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞