杨辉三角:
1
1 1
1 2 1
1 3 3 1
…
思路: 可以看出在杨辉三角中,每行元素的第一个和最后一个都是1,从第三行开始,第二个到倒数第二个元素等于上一行相邻两元素之和。那我们可以分开进行处理,最后打印。
功能: 打印杨辉三角,由用户指定行数来进行打印。
要注意的是,我这里是使用宏来设置行数的,因此用户输入的行数不能大于N 15.
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#define N 15
int main() {
int n;//表示杨辉三角的行数,可以由用户来指定
scanf("%d", &n);
int arr[N][N];
for (int i = 0; i < n; ++i) { // 每行第0个和最后一个元素赋值1
arr[i][0] = 1;
arr[i][i] = 1;
}
for (int i = 2; i < n; ++i) { //从第2行开始处理
for (int j = 1; j < i; ++j) {
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
}
}
for (int i = 0; i < n; ++i) {
for (int j = 0; j <= i; ++j) {
printf("%6d", arr[i][j]);
}
printf("\n");
}
system("pause");
return 0;
}
运行结果:
输入n=10