寒假集训8——数论

📅 发布时间:2026/7/12 21:20:57 👁️ 浏览次数:
寒假集训8——数论
P1009 [NOIP 1998 普及组] 阶乘之和题目描述用高精度计算出 S1!2!3!⋯n!n≤50。其中!表示阶乘定义为 n!n×(n−1)×(n−2)×⋯×1。例如5!5×4×3×2×1120。输入格式一个正整数 n。输出格式一个正整数 S表示计算结果。输入输出样例输入 #1复制运行3输出 #1复制运行9说明/提示【数据范围】对于 100% 的数据1≤n≤50。【其他说明】注《深入浅出基础篇》中使用本题作为例题但是其数据范围只有 n≤20使用书中的代码无法通过本题。如果希望通过本题请继续学习第八章高精度的知识。NOIP1998 普及组 第二题#includeiostream using namespace std; typedef unsigned long long LL; LL calc(int n) { LL sum0; LL fac1; for(int i1;in;i) { fac*i; sumfac; } return sum; } //50!≈3.04×10^64 int main() { int n; cinn; coutcalc(n)endl; return 0; }1~50的阶乘之和范围3.04×10^64unsigned long long装不下范围即约 1.84×10^19要上高精度。