社区讨论
为啥我用的高精度却过不了
P1591阶乘数码参与者 3已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mj5yd7d9
- 此快照首次捕获于
- 2025/12/15 00:42 2 个月前
- 此快照最后确认于
- 2025/12/18 14:40 2 个月前
CPP
#include <bits/stdc++.h>
using namespace std;
int s[1001];
int ls;
void mul(int t) {
for (int i = 0; i < ls; i++) {
s[i] *= t;
}
for (int i = 0; i < ls; i++) {
s[i + 1] += s[i] / 10;
s[i] %= 10;
}
int i = ls;
while (s[i] >0) {
s[i + 1] += s[i] / 10;
s[i] %= 10;
i++;
}
ls = i;
}
void chen() {
int n, m;
cin >> n >> m;
fill(s, s + 1001, 0);
s[0] = 1;
ls = 1;
for (int i = 2; i <= n; i++) {
mul(i);
}
int ans = 0;
for (int i = 0; i < ls; i++) {
cout<<s[i];
if (s[i] == m) {
ans++;
}
}
cout<<endl;
cout << ans << endl;
}
int main() {
ios::sync_with_stdio(0), cin.tie(0);
int _;
cin >> _;
while (_--) {
chen();
}
return 0;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...