打印杨辉三角

杨辉三角在数学上是一道非常经典的题目,今天我们尝试使用C语言在屏幕上打印杨辉三角。

一、杨辉三角的特点

 我们举4行杨辉三角为例,将杨辉三角看作一个二维数组和,分别为 i 行 j 列。

通过观察我们可以发现,当 i==j 时,arr [i] [j] ==1;当 j ==0 时,我们的arr [i] [j] ==1;

在杨辉三角内部的数,它的值是由它上方的数和左上方的数相加得来的。

例如2是由上方的1+左上方的1得来,3由上方的1+左上方的2得来;

二、解题思路

主函数定义:

 首先定义主函数,并且分装两个函数实现我们的数组赋值和打印。

我们定义一个函数yanghui用来给我们的二维数组赋值杨辉三角的内容;定义一个函数print用来打印我们赋值好的函数。

例如我们打印8行杨辉三角,那么我们的主函数就是这样的:

int main()
{
	int arr[8][8] = { 0 };
	yanghui(arr,8);
	print(arr,8);
	return 0;
}

定义一个8行8列的二维数组,给yanghui和print函数传参。

yanghui函数实现

定义好主函数以后,先实现我们的yanghui函数。

首先for循环嵌套for循环给我们的二维数组赋值。

由杨辉三角的特点我们可以知道:

当 i==j 时,arr [i] [j] ==1;

当 j ==0 时,arr [i] [j] ==1;

剩余情况下,arr [i] [j] = arr [i - 1] [j] + arr [i - 1] [j - 1];

所以我们使用if语句进行判断。

for (int i = 0; i < n; i++)
{
	for (int j = 0; j < n; j++)
	{
		if (i == j)
		{
			arr[i][j] = 1;
		}
		else if (j == 0)
		{
			arr[i][j] = 1;
		}
		else
		{
			arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
		}
	}
}

print函数的实现:

print函数的实现较为简单,我们只需要定义 i 和 j 在for循环中循环打印即可。

for (int i = 0; i < n; i++)
{
	for (int j = 0; j <= i; j++)
	{
		printf("%d ", arr[i][j]);
	}
	printf("\n");
}

三、完整代码:

至此,使用C语言实现杨辉三角的代码就已经全部完成了。下面附上完整代码:

void yanghui(int arr[][8], int n)
{
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			if (i == j)
			{
				arr[i][j] = 1;
			}
			else if (j == 0)
			{
				arr[i][j] = 1;
			}
			else
			{
				arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
			}
		}
	}
}
void print(int arr[][8], int n)
{
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j <= i; j++)
		{
			printf("%d ", arr[i][j]);
		}
		printf("\n");
	}
}
int main()
{
	int arr[8][8] = { 0 };
	yanghui(arr,8);
	print(arr,8);
	return 0;
}

完。

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值