杨辉三角形
需求:输入一个不超过10的整数,输出杨辉三角形。
主要思路:
利用二维数组,找出数字存在的规律
- 左侧第一列和对角线的元素值均为1
- a[i][j] = a[i-1][j] + a[i-1][j-1]
1 | |||||||||
---|---|---|---|---|---|---|---|---|---|
1 | 1 | ||||||||
1 | 2 | 1 | |||||||
1 | 1 | ||||||||
1 | 1 | ||||||||
1 | a[i-1][j-1] | a[i-1][j] | 1 | ||||||
1 | a[i][j] | 1 | |||||||
1 | 1 | ||||||||
1 | 1 | ||||||||
1 | 1 |
主要代码:
#include <stdio.h>
#define N 10
int main()
{
int a[N][N] = {0}, i, j, n=10; // N为最大空间, n为实际输入
for (i = 0; i < n; i++)
{
a[i][0] = 1; // 左边第一列初始化为1
a[i][i] = 1; // 对角线初始化为1
}
// 为剩下的元素赋值
for (i = 2; i < n; i++)
for (j= 1; j < i; j++)
a[i][j] = a[i-1][j] + a[i-1][j-1];
//输出
for (i = 0; i < n; i++)
{
for (j = 0; j <= i; j++)
printf("%4d", a[i][j]);
printf("\n");
}
return 0;
}