#include <iostream>
using namespace std;
int main() {
long long S,num = 0;
int a[3500] = { 0 };
cin >> S;
a[0] = 1;
for (int j = 1;j <= S;j++) {
for (int i = 1;i < 3000;i++) {
a[i - 1] = (a[i - 1] * j + num) % 10;
num = a[i - 1] * j / 10;
}
//cout << a[1] << endl;
//cout << num << endl;
}
for (int i = 1;i <= S;i++) {
cout << a[i-1];
//虽然只输出前50位,但也不应该全是0叭= =,我输入了好多个数试过了
}
return 0;
}
整个代码都不对,思想偏了。你的代码for循环外层循环一次内层就循环了3000次
用一个for循环应该就能解决问题