只有20分求助。看了好久没找出错在哪
查看原帖
只有20分求助。看了好久没找出错在哪
599341
Sanivia楼主2022/6/6 09:53
#include<iostream>
using namespace std;
int a[10];
int main() {
	int i, n, s = 0, g = 0;
	a[0] = 1;
	cin >> n;
	if (n == 3) {
		cout << "1 2" << endl << "2";
	}
	else if (n == 4)
		cout << "1 3" << endl << "3";
	else {
		for (i = 2; s < n; i++) {
			s += i;
		}
		if (s - n == 1) {
			for (int j = 3; j <= i-1; j++) {
				if (j == i - 1)j += 1;
				cout << j << " ";
				for (int p = 0; p < 10; p++) {
					a[p] = a[p] * j + g;
					g = a[p] / 10;
					a[p] = a[p] % 10;
				}
			}
		}
		else	for (int j = 2; j <= i - 1; j++) {
			if (j != s - n) {
				cout << j << " ";
				for (int p = 0; p < 10; p++) {
					a[p] = a[p] * j + g;
					g = a[p] / 10;
					a[p] = a[p] % 10;
				}
			}
		}
		int t = 0, z = 0;
		for (int l = 9; l >= 0; l--) {
			if (a[l] == 0 && t == 0)z++;
			else t++;
		}
		cout << endl;
		for (int l = 9 - z; l >= 0; l--) {
			cout << a[l];
		}
	}
  return 0;
}

2022/6/6 09:53
加载中...