Big Factorials

#include<bits/stdc++.h>
using namespace std;

typedef long long ll;

ll factorial(int n)
{
    if(n > 1)
        return n * factorial(n - 1);
    else
        return 1;
}

int main()
{
    int n;
    cin>>n;

    ll k = factorial(n);

    stringstream ss;
    ss<<k;
    string s;
    ss>>s;

    if(s.size() <= 4) cout<<s<<endl;
    else cout<<s.substr(s.length() - 4)<<endl;

    return 0;
}

What’s wrong here? I am getting “Wrong Answer” on 4th test case.

1 Like