洛谷:P5739:计算阶乘


洛谷:P5739:计算阶乘

Table of Contents

题目

P5739:计算阶乘

分析

本题不做更深的分析。对于已经掌握循环的读者而言,完全可以用循环的方式来求出阶乘。

题目中要求的挑战:尝试不使用循环语句(for、while)完成这个任务,需要用到函数以及“递归”。递归概念对于初学者而言略有难度,但可以用本题作为入手。

在此仅给出核心的代码:

int fact(int n) {
    if (n <= 1) return 1;
    return n * fact(n - 1);
}

答案

Solution

思考

本题保证\(1\le n \le 12\),而\(12!=479,001,600\),完全可以用int表示。如果用long long存放最终结果,那么可以算到20!。再大的阶乘计算,需要用到高精度——这超出了本章的范畴,先不做讨论。

Previous Next