#include <iostream> using namespace std; /*学会利用预处理,减小时间复炸度*/ const int mod = 1000000007; const int MAX_N = 1e6; // 根据题目可能的最大n值设定 // 预计算阶乘表 long long fact[MAX_N + 1]; // 初始化阶乘表 void precompute() { fact[0] = 1; for (int i = 1; i <= MAX_N; ++i) { fact[i] = fact[i - 1] * i % mod; } } int main() { // 提前计算所有可能用到的阶乘 precompute(); int t; cin >> t; while (t--) { long long n; cin >> n; // 直接从预计算的表中获取结果,O(1)操作 cout << fact[n] << endl; } return 0; }