思路
因为 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;
    }
} 
京公网安备 11010502036488号