使用vector储存已经计算过的结果,避免重复计算

#include<iostream>
#include<iomanip>
#include<vector>

using namespace std;

int main(){
    int n;
    vector<double>nums(1,1);
    while(cin>>n){
        while(n>=nums.size()){
            double temp=nums[nums.size()-1]*(nums.size()+1);
            nums.push_back(temp);
        }
        cout << fixed << setprecision(0)<<nums[n-1]<<endl;//取消科学计数法输出
    }
    return 0;
}