题目:请输出以下杨辉三角(要求输出前10行)
列:
1
 1    1
 1    2    1
 1    3    3    1
 1    4    6    4    1
 1    5    10  10   5   1
 ......
 
 
题解析:不了解杨辉三角的可以百度看一下,大概是这样的,咱们就可以解答了。

代码如下:
#include <stdio.h>
int main()
{
	int i = 0;
	int j = 0;
	int yh[10][10] = { 0 };
	yh[0][0] = 1;
	yh[1][0] = 1;
	yh[1][1] = 1;
	// i = 行   j = 列
	for (i = 2; i < 10; i++)
	{
		for (j = 0; j <= i; j++)
		{
			if (j == 0 || j == i)
			{
				yh[i][j] = 1;
			}
			else
			{ // i 取行  j 取列  
			  // yh[i-1] [j-1] 
			  // i = 2; j = 1;
				// yh[i][j] = [1,0] + [1,1] = yh[i-1][j-1] + yh[i-1][j] 
				// yh[i][j] = [i][j] == [1,0] + [1,1] 下标里的值相加得出
				yh[i][j] = yh[i-1][j-1] + yh[i-1][j];
				
			}
		}
	}
	for (i = 0; i < 10; i++)
	{
		j = 10 - i;
		while (j--) 
		{
			printf("    "); // 打印菱形
		}
		for (j = 0; j <= i; j++)
		{
			printf("%8d", yh[i][j]); // 空
		}
		printf("\n");
	}
	return 0;
}运行结果:

题目解析:使用数组嘛,二维数组进行计算,从0开始的嘛,然后值就是上组的值相加得出的嘛,由此就可得出答案了。

 


















