编程语言
首页 > 编程语言> > 超细节讲解杨辉三角!C语言与Python实现

超细节讲解杨辉三角!C语言与Python实现

作者:互联网

杨辉三角

C语言实现

// 打印100行杨辉三角
#include<stdio.h>
int main()
{
	int yang[50][50] = {0};
	int i, j, m;


	// 打印杨辉三角
	for(i=0; i<50; i++)
	{
		// 这里只打印二维数组的杨辉三角部分没所以 j <= i
		for(j=0; j<=i; j++)
		{
			m = yang[i][j];
			printf("%d", m);
		}	
		printf("\n");
	}
	return 0;
}

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

// 打印100行杨辉三角
#include<stdio.h>
int main()
{
	int yang[25][25] = {0};
	int i, j, m;

	// 补充代码打印杨辉三角两边的 1
	// 输出每行的1,位置是行首和 行尾,对应的下标是 [][0] , [][i].  i为当前行,以0开始 
	for(i=0; i<25; i++)
	{
		
		yang[i][0] = 1;
		yang[i][i] = 1;
	}

	// 打印杨辉三角
	for(i=0; i<25; i++)
	{
		for(j=0; j<=i; j++)
		{
			m = yang[i][j];
			printf("%d", m);
		}	
		printf("\n");
	}
	return 0;
}

运行结果:
在这里插入图片描述
** (3) 第三步,就到了关键的 中间部分的打印了,参考上面的正三角那张图片,我们知道, 下面的数,等于它肩膀上 两个数的。那么根据此规律,又可以继续写代码实现了!

第三步写完,也是所有代码都写完啦

// 打印100行杨辉三角
#include<stdio.h>
int main()
{
	int yang[25][25] = {0};
	int i, j, m;

	// 输出每行的1,位置是行首和 行尾,对应的下标是 [][0] , [][i].  i为当前行,以0开始 
	for(i=0; i<25; i++)
	{
		yang[i][0] = 1;
		yang[i][i] = 1;

		// 补充代码,打印一行中间的数字
		for(j=1; j<i; j++)
		{
			// 注意 j的取值,从每行的第二个数字,到倒数第二个数字,因为第一个最后的数字是 1固定的
			// 按照数的值 是它肩上两个数的和
			yang[i][j] = yang[i-1][j-1] + yang[i-1][j];	
		}
		
	}

	// 打印杨辉三角
	for(i=0; i<25; i++)
	{
		for(j=0; j<=i; j++)
		{
			m = yang[i][j];
			printf("%d  ", m);  // 为了格式好看,我们在这里加上两个空格,隔开数字!!!
		}	
		printf("\n");
	}
	return 0;
}

打印结果看看!
在这里插入图片描述

有很多实现方法,不过经过我的分析考虑,写出来这么一种,希望对你有帮助!明天补上 Python的实现。

标签:25,Python,打印,C语言,int,yang,printf,杨辉三角
来源: https://blog.csdn.net/pythonstrat/article/details/112785574