描述
打印出杨辉三角形
1
11
121
1331
……
思路
本程序大体可以分为三个部分!(起始变量的值i == 1,j == 1)。
1、打印空格。
因为最后一行不需要空格,所以每一行只需要n - i + 1 个空格。
2、打印两边的1。
只要是j == 1 或者 j == i 就可以打印1,这样就控制了两条边都为1。
3、打印里面的内容。
这里我用到了一个数组a[100][100],用来记录每一行的值,也是为了下面计算方便。
打印完1后,进入三角形内部,每个元素都是自己头顶元素和头顶元素的左边那个元素的和。
于是就有了表达式a[i][j] = a[i - 1][j] + a[ i - 1][j - 1];
源代码
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
/*
* 在屏幕上打印杨辉三角。
1
1 1
1 2 1
1 3 3 1
* 郭文峰
* 2018/10/23
*/
int main(void)
{
int i = 0;
int j = 0;
int n = 0;
int a[100][100] = { 0 };
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
for (j = 1; j < n - i + 1; j++)
{
printf(" ");
}
for (j = 1; j <= i; j++)
{
if (j == 1 || j == i)
{
a[i][j] = 1;
printf("% d", a[i][j]);
}
else
{
a[i][j] = a[i - 1][j] + a[i - 1][j - 1];
printf("% d", a[i][j]);
}
}
printf("\n");
}
system("pause");
return 0;
}