杨辉三角的打印

题目内容:

在屏幕上打印杨辉三角。

思路:

首先我们通过观察发现,每一步的打印都与行列数有关,中间的数据由这一列和上一行的前一列数据控制。所以我们可以使用二维数组进行操作:

(1)每一行的首元素都是1,第i行的第i个元素也是1:

int main()
{
	int arr[10][10] = { 0 };
	
	for (int i = 0; i < 10; i++)
	{
		arr[i][0] = 1;
		for (int j = 0; j <= i;j++)
		{
			if (i == j)
			{
				arr[i][j] = 1;
			}
		}
	}

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

	return 0;
}

第一步就完成了。

(2)接下来要对中间的元素的值的规律观察,我们发现中间的数据由这一列和上一行的前一列数相加得出,比如3=1+2;2=1+1;...:

#include<stdio.h>

int main()
{
	int arr[10][10] = { 0 };
	
	for (int i = 0; i < 10; i++)
	{
		arr[i][0] = 1;
		for (int j = 0; j <= i;j++)
		{
			if (i == j)
			{
				arr[i][j] = 1;
			}
			if (i > 1 && j > 0)
			{
				arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
			}
		}
	}

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

	return 0;
}

(3)打印空格:

for (j = 10 - i; j > 0; j--)
{
	printf("  ");
}

(4)最后代码如下:

#include<stdio.h>

int main()
{
	int arr[10][10] = { 0 };
	int i = 0;
	int j = 0;

	
	for (int i = 0; i < 10; i++)
	{
		for (j = 10 - i; j > 0; j--)
		{
			printf("  ");
		}

		arr[i][0] = 1;

		for (int j = 0; j <= i;j++)
		{
			if (i == j)
			{
				arr[i][j] = 1;
			}
			if (i > 1 && j > 0)
			{
				arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
			}
			printf("%-3d ", arr[i][j]);
		}
		printf("\n");
	}

	

	return 0;
}

谢谢大家!!!

相关推荐

  1. 三角型打印

    2024-05-10 10:56:06       36 阅读
  2. 三角

    2024-05-10 10:56:06       39 阅读
  3. 三角(Python)

    2024-05-10 10:56:06       39 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-10 10:56:06       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-10 10:56:06       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-10 10:56:06       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-10 10:56:06       18 阅读

热门阅读

  1. 替换掉Springboot框架中的Tomcat,使用undertow

    2024-05-10 10:56:06       15 阅读
  2. https忽略ssl证书校验

    2024-05-10 10:56:06       8 阅读
  3. STM32 定时器最佳分频

    2024-05-10 10:56:06       9 阅读
  4. npm i 与npm install的区别,接上回的npm ERR! code 128

    2024-05-10 10:56:06       11 阅读
  5. 木钻:muzuan.cn

    2024-05-10 10:56:06       10 阅读
  6. PELCO-D相机云台控制协议

    2024-05-10 10:56:06       10 阅读
  7. 如何在Linux中安装Docker Compose

    2024-05-10 10:56:06       8 阅读