C语言---在屏幕上打印杨辉三角

本文详细介绍了杨辉三角的生成算法及其实现过程,包括如何通过递推公式计算每一项的值,并展示了完整的C语言代码。同时,文章还探讨了杨辉三角的数学特性,如每行数字的对称性、组合数的表达方式及其与斐波那契数列的关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

杨辉三角: 每行端点与结尾的数为1. 每个数等于它上方两数之和。 每行数字左右对称,由1开始逐渐变大。 第n行的数字有n项。
第n行的m个数可表示为 C(n-1,m-1),即为从n-1个不同元素中取m-1个元素的组合数。 第n行的第m个数和第n-m+1个数相等
每个数字等于上一行的左右两个数字之和。可用此性质写出整个杨辉三角。即第n+1行的第i个数等于第n行的第i-1个数和第i个数之和,这也是组合数的性质之一。即
C(n+1,i)=C(n,i)+C(n,i-1)。 (a+b)n的展开式中的各项系数依次对应杨辉三角的第(n+1)行中的每一项。
将第2n+1行第1个数,跟第2n+2行第3个数、第2n+3行第5个数……连成一线,这些数的和是第4n+1个斐波那契数;将第2n行第2个数(n>1),跟第2n-1行第4个数、第2n-2行第6个数……这些数之和是第4n-2个斐波那契数。
在这里插入图片描述

拟实现:

实现给出一个n,则输出相对应的n的图形,包含n.

思路:

每行第一个数为1.
从第二列开始,当下标<n时每一个数=该数上面的数+该数上面数的前一个数,即:a[ i ][ j ]=a[ i-1 ][ j ]+a[ i-1 ][ j-1 ]

#define	_CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
	int i, j,n;
	int a[100][100] = { 0 };
	printf("请输入n为:\n");
	scanf("%d", &n);
	for (i = 0; i < n; ++i)
	{
		a[i][0] = 1; //每一行第一列数均为一
	}
	for (i = 1; i <= n; i++)
	{
		for (j = 1; j <= n; j++)
		{
			a[i][j] = a[i - 1][j] + a[i - 1][j - 1]; //从每一行第二个数开始循环,每一个数=该数上面的数+该数上面数的前一个数
		}
	}
	for (i = 0; i <= n; i++)
	{
		for (j = 0; j <= i; j++)
			printf("%d   ", a[i][j]);
		printf("\n");
	}
	return 0;
}

运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值