杨辉三角形,相信大家都学习过,该如何用C语言来做它呢?

    如下是其代码:

#include<stdio.h>
int main()
{
	int n = 0;
	scanf("%d", &n);
	int arr[30][30] = {0};
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j <= i; j++)
		{
			if (j == 0 || j == i)
			{
				arr[i][j] = 1;
				printf("%d ", arr[i][j]);
			}
			else
			{
				arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
				printf("%d ", arr[i][j]);
			}

		}
		printf("\n");
	}

	return 0;
}

如下是其运行结果:

接下来讲一讲此代码的逻辑:

杨辉三角形的两边都是1,中间的元素是其上一行的紧挨的一列和左边一列元素的加和。

首先,我们需要有一个数组来存放数据,需要二维数组,因为有行,有列。两个for语句,第一个for语句控制行,里面的for语句控制列。我们可以打一个简单的代码看看效果。

 可以看到,杨辉三角形的雏形已经有了。

接下来,就该录入杨辉三角形数据了。在开头就说了杨辉三角形的逻辑,我用俩个公式来表示:

arr[i][j]=arr[i-1]arr[j]+arr[i-1][j-1]; j\neq 0,j\neq i. arr[i][j]=1;j=0,j=i;

 就是说,两边都是1,中间的元素是其上一行的紧挨的一列和左边一列元素的加和。

代码如下:

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

再加上printf,这个杨辉三角性就完成了,具体想要输出杨辉三角形的样式,由自己决定。以上就是本期内容。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐