为何输出都是0,求阶乘之后的数

#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循环应该就能解决问题