c语言输出杨辉三角

c语言输出杨辉三角,第1张

杨辉三角,是在二项式系数三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡(1623----1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。帕斯卡的发现比杨辉要迟393年,比贾宪迟600年。

杨辉三角的每一位数都是上面两位数的和,如图:

 用C语言可以对杨辉三角进行输出。程序如下:

方法一:用两个一维数组来计算杨辉三角并输出

#include
#include
void copy(const int* arr_2, int* arr_1)
{
	assert(arr_1);
	assert(arr_2);
	int i_2 = 0;
	while (*(arr_2 + i_2))
	{
		*(arr_1 + i_2) = *(arr_2 + i_2);
		i_2++;
	}
}
void print(int* arr_2)
{
	int i_1 = 0;
	while (*(arr_2 + i_1))
	{
		printf("%d ", *(arr_2 + i_1));
		i_1++;
	}
	printf("\n");
}
int main()
{
	int arr1[10] = { 1 };
	int arr2[10] = { 1 };
	int n = 0;
	int i = 0;
	int j = 0;
	scanf("%d", &n);//输入杨辉三角的行数
	printf("\n");
	printf("%d\n", arr1[0]);
	//行数
	for (j = 2; j < n+1; j++)
	{
		//每行数
		for (i = 1; i < j; i++)
		{
			arr2[i] = arr1[i] + arr1[i - 1];
		}
		print(arr2, i);//打印杨辉三角的一行
		copy(arr2, arr1);//复制函数
	}
	return 0;
}

方法二:用一个二维数组计算并输出杨辉三角

#include
int main()
{
	int arr[10][10] = { 0 };
	int i = 0;
	int j = 0;
	int n = 0;
	scanf("%d", &n);//输入杨辉三角的行数
	printf("\n");
	//计算杨辉三角的数,放入二维数组中,只用到下三角
	for (i = 0; i < n; i++)//行数
	{
		for (j = 0; j <= i; j++)
		{
			if (j == 0)
			{
				arr[i][j] = 1;
			}
			if (i == j)
			{
				arr[i][j] = 1;
			}
			if ((j < i) && (j != 0))
			{
				arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
			}
		}
	}
	//输出二维数组,即杨辉三角
	for (i = 0; i < n; i++)
	{
		for (j = 0; j <= i; j++)
		{
			printf("%d ", arr[i][j]);
		}
		printf("\n");
	}
	return 0;
}

两种方法输出的杨辉三角结果都一样,如下图:

要想输出为金字塔形状的,只需在输出每一行之前输出相应的空格数。 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1498814.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-25
下一篇 2022-06-25

发表评论

登录后才能评论

评论列表(0条)

保存