代码如下
#include <iostream>
using namespace std;
int n, la, lb, lh, h[1002][1002][303];
int main() {
cin >> n;
h[1][1][0] = 1;
cout << h[1][1][0] << '\n';
for (int i = 2; i <= n; i++) {
for (int j = 1; j <= i; j++) {
for (int k = 0; k <= lh + 2; k++)
if (h[i - 1][j][k])
la = k + 1;
for (int k = 0; k <= lh + 2; k++)
if (h[i - 1][j - 1][k])
lb = k + 1;
lh = la > lb ? la : lb;
for (int k = 0; k < lh; k++) {
h[i][j][k] = h[i - 1][j][k] + h[i - 1][j - 1][k] + h[i][j][k];
if (h[i][j][k] >= 10) {
h[i][j][k + 1] = 1;
h[i][j][k] -= 10;
}
}
if (h[i][j][lh] > 0)
lh ++;
for (int k = lh - 1; k >= 0; k--)
cout << h[i][j][k];
cout << ' ';
}
cout << '\n';
}
return 0;
}