#include #include //输出格式化的头文件,cout<
using namespace std;
#define N 10 //int a[N][N]
/*杨辉三角形 条件:每行端点与结尾的数为1.每个数等于它上方两数之和。 每行数字左右对称,由1开始逐渐变大.
1 行数=打印个数1
1 1 行数=打印个数2
1 2 1 行数=打印个数3
1 3 3 1 行数=打印个数4 1 4 6 4 1 行数=打印个数5 1 5 10 10 5 1 行数=打印个数6
1 0 0 0 0 0 0 实现思路: 1 1 0 0 0 0 0 定义一个二维数组,所有元素初始化为0; 1 2 1 0 0 0 0 给数组的第一列和对角线元素赋值为1; 1 3 3 1 0 0 0 第一列[行++][列不变],[1][0],[2][0]等等下去全为1; 1 4 6 4 1 0 0 对角线[行++][列++],[1][1],[2][2]等等斜着下去全为1; 1 5 10 10 5 1 其余元素a[i][j]=a[i-1][j-1]+a[i-1][j];
*/
int main(void) { int a[N][N] = { 0 };//二维数组元素全初始化为0;
/*
//给数组的第一列和对角线元素赋值为1;
for (int i = 0; i < N; i++) {
a[i][0] = 1 ;//第一列[行++][列不变]
a[i][i] = 1 ;//对角线[行++][列++]
}
*/
for (int i = 0; i < N; i++) {
for (int j = 0; j <=i; j++) {
if (j == 0 || i == j) {
a[i][j] = 1;//给数组的第一列和对角线元素赋值为1;
}
else {
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
}
}
}
for (int i = 0; i < N; i++) {
//cout << setw((N-i)*2) << a[i][0];//用了这个会造成数据混乱.vs2019
for (int x = N-1; x >= i ;x--) {//打印空格
cout << " ";
}
for (int j = 0; j <= i ; j++) {
cout <
}
cout << endl;
}
system("pause");
return 0;
}