社区讨论
40分求助!!
P1249最大乘积参与者 1已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @m6recwjv
- 此快照首次捕获于
- 2025/02/05 12:16 去年
- 此快照最后确认于
- 2025/11/04 09:58 4 个月前
CPP
#include <bits/stdc++.h>
using namespace std;
int n, sum, cnt;
string ans;
string JiaFa(string a, string b) {
string c = "";
int la = a.size();
int lb = b.size();
if (la > lb) {
for (int i = 0; i < la - lb; i++) {
b = '0' + b;
}
}
if (la < lb) {
for (int i = 0; i < lb - la; i++) {
a = '0' + a;
}
}
// cout << a << endl << b << endl;
int tmp = 0;
for (int i = a.size() - 1; i >= 0; i--) {
int k = (a[i] - '0') + (b[i] - '0') + tmp;
c = char(k % 10 + '0') + c;
tmp = k / 10;
}
if (tmp == 1) {
c = '1' + c;
}
return c;
}
string ChengFa(string a, string b) {
string c = "";
// cout << JiaFa(a, b);
int tl = 0;
for (int i = b.size() - 1; i >= 0; i--) {
int tmp = 0;
string t = "";
for (int j = a.size() - 1; j >= 0; j--) {
// cout << a[j] << " " << b[i] << endl;
int k = (b[i] - '0') * (a[j] - '0') + tmp;
tmp = k / 10;
// cout << k << endl;
// cout << t << endl;
t = char(k % 10 + '0') + t;
// cout << t << endl;
}
// cout << t << endl;
if (tmp != 0) {
t = char(tmp + '0') + t;
}
// cout << t << endl;
for (int j = 0; j < tl; j++) {
t += '0';
}
// cout << t << endl;
c = JiaFa(c, t);
tl++;
}
if (a == "0" || b == "0") {
return "0";
}
return c;
}
int main() {
ans = "1";
cin >> n;
for (cnt = 2;; cnt++) {
sum += cnt;
if (sum >= n) {
break;
}
}
if (n <= 4) {
cout << n << endl << n;
return 0;
}
if (sum == n) {
for (int i = 2; i <= cnt; i++) {
cout << i << ' ';
char c = char(i + '0');
std::string s;
s = c;
ans = ChengFa(ans, s);
}
cout << endl;
cout << ans;
} else {
int a = sum - n;
if (a == 1) {
for (int i = 2; i <= cnt; i++) {
if (i == 2) {
continue;
}
if (i == cnt) {
i++;
}
cout << i << ' ';
char c = char(i + '0');
std::string s;
s = c;
ans = ChengFa(ans, s);
}
} else {
for (int i = 2; i <= cnt; i++) {
if (i == a) {
continue;
}
cout << i << ' ';
char c = char(i + '0');
std::string s;
s = c;
ans = ChengFa(ans, s);
}
}
cout << endl;
cout << ans;
}
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...