注意空格的输出,printf("%d ")是错的因为会在每一行的末尾多加一个空格。。
#include <iostream>
using namespace std;
const int N = 31;
int a[N][N];
int main() {
int n;
while(~scanf("%d", &n)) {
for(int i = 0; i < n; i++) {
a[i][0] = a[i][i] = 1;
for(int j = 1; j < i; j++)
a[i][j] = a[i - 1][j] + a[i - 1][j - 1];
}
for(int i = 0; i < n; i++) {
for(int j = 0; j <= i; j++) {
if(j != 0)
printf(" ");
printf("%d", a[i][j]);
}
printf("\n");
}
printf("\n");
}
return 0;
}