最后一个点WA了,求调
查看原帖
最后一个点WA了,求调
1258733
jms23063楼主2025/7/22 14:52
#include<bits/stdc++.h>
using namespace std;
int n, m, len, a[10005], b[1000050];
int main(){
	cin >> n;
	if(n == 3 || n == 4){
		printf("%d\n%d", n, n);
		return 0;
	}
	int sum = 0;
	for(int i = 2; sum < n; i++){
		sum += i;
		a[i] = i;
		m = i;
	}
	if(sum > n){
		if(sum - n == 1) a[2] = 1, a[m]--;
		else a[sum-n] = 1;
	}
	len = 1;
	b[1] = 1;
	for(int i = 2; i <= m; i++){
		if(a[i] != 1) cout << a[i] << ' ';
		for(int j = 1; j <= len; j++) b[j] *= a[i];
		for(int j = 1; j <= len; j++){
			if(b[j] > 9 && j == len) len++;
			b[j+1] += b[j]/10;
			b[j] %= 10;
		}
	}
	cout << '\n';
	for(int i = len; i >= 1; i--) cout << b[i];
	return 0;
}
2025/7/22 14:52
加载中...