求优化,高精度打印杨辉三角,不想要三维数组了
查看原帖
求优化,高精度打印杨辉三角,不想要三维数组了
765849
kingdom楼主2022/8/22 02:09

代码如下

#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;
}
2022/8/22 02:09
加载中...