您的位置:首页 > 编程语言 > C语言/C++

用C语言打印杨辉三角

2016-01-11 00:12 447 查看

用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();// 暂停
re
9c56
turn EXIT_SUCCESS;
}


编译环境:Dev-C++ 5.11

运行效果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  杨辉三角 c语言