编码实现杨辉三角

杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉所著的《详解九章算法》一书中出现。
在欧洲,帕斯卡在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。

有如下特点
1.每个数等于它上方两数之和。
2.每行数字左右对称,由1开始逐渐变大。
3.第n行的数字有n项。前n行共[(1+n)n]/2 个数。
4.每个数字等于上一行的左右两个数字之和。可用此性质写出整个杨辉三角。即第n+1行的第i个数等于第n行的第i-1个数和第i个数之和,这也是组合数的性质之一。即 C(n+1,i)=C(n,i)+C(n,i-1)。

原理图如下
在这里插入图片描述
根据他的特点与规律可用编码实现。且用二维数组与循环实现。
源代码

//杨辉三角
#include<stdio.h>
int main()
{
    
    
	int a[10][10], i, j;
	int n = 0;
	scanf_s("%d", &n);
	//要输出的行数
	for (i = 0; i < n; i++)
	{
    
    
		for (j = 0; j <= i; j++) 
		{
    
    
			if (i == j || j == 0)
			{
    
    
				a[i][j] = 1;
			}
			else
			{
    
    
				a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
			}
		}
	}
	for (i = 0; i < n; i++)
	{
    
    
		for (j = 0; j <= i; j++)
		{
    
    
			printf("%5d", a[i][j]);
		}
		printf("\n");
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_45313447/article/details/110086513