解题思路及注意事项:
我的方法是:
定义一个数组,用两个for循环分别把所有1存入数组中和把除了1以外的数存入数组中。存入除了1以外的数时要注意for循环!
存入数不是很难想,但最关键的是输出的方式一定要看好:
1. 每一行数字之间有一个空格,但最后一个数后面没有空格。
2. 每一组输出后有一个空行。
代码实现:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int main() {
int n;
int a[100][100];
while (scanf("%d", &n) != EOF) {
for (int i = 1; i <= n; i++) { //所有的1存入数组
a[i][1] = 1;
a[i][i] = 1;
}
for (int i = 3; i <= n; i++) { //除了1以外的其他数存入数组
for (int j = 2; j < i; j++) {
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
if (j != i)
printf("%d ", a[i][j]);
else //输出最后一个数时,它的后面没有空格
printf("%d\n", a[i][j]);
}
}
printf("\n");
}
return 0;
}