文章
119
粉丝
68
获赞
90
访问
19.9k
#include <bits/stdc++.h>
using namespace std;
string multiplyBigNumber(const string & num, int multiplier) {
if (multiplier == 0) {
return "0";
}
string result;
int carry = 0;
// 从字符串的末尾开始,逐位相乘
for (int i = num.length() - 1; i >= 0; --i) {
int digit = num[i] - '0';
int product = digit * multiplier + carry;
carry = product / 10;
result.push_back((product % 10) + '0');
}
// 处理最后的进位
while (carry != 0) {
result.push_back((carry % 10) + '0');
carry /= 10;
}
// 反转结果字符串,因为我们是从最低位开始计算的
reverse(result.begin(), result.end());
return result;
}
int main() {
vector < string > a(1001);
a[0] = "1", a[1] = "1";
for (int i = 2; i <= 1000; i++) {
a[i]=multiplyBigNumber(a[i-1],i);
}
int n;
while (cin >> n) {
cout<<a[n]<<endl;
}
}
大数乘一般数的情况是非常简单的,然后我们在1000范围内进...
登录后发布评论
暂无评论,来抢沙发