思路

因为 n 不超过 20,那么先求出前 20 的阶乘,加快一下计算。

#include<iostream>
#include<vector>

using namespace std;

int main(){
    vector<long long> dp(21, 1);
    for(int i = 2; i <= 20; i ++){
        dp[i] = dp[i - 1] * i;
    }
    int n;
    while(cin >> n){
        cout << dp[n] << endl;
    }
}