1 条题解

  • 0
    @ 2025-8-24 22:13:55

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Python147
    **

    搬运于2025-08-24 22:13:55,当前版本为作者最后更新于2025-06-26 11:08:45,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    题目传送门

    题目分析

    基本思路

    本题要求计算 n!n!,但题目要求不使用循环来完成此题,那我们可以尝试递归。

    实现细节

    首先我们要了解什么是函数。我们之前学过循环,部分程序段需要反复执行时可以使用循环。但是在一些情况下,我们无法通过循环来减少工作量。这时候我们就要使用函数了。

    函数定义的语法形式

    数据类型 函数名(形式参数表)
    {
        函数体;
    }
    

    注意事项

    • 函数的数据类型指函数的返回值类型(如果类型为void,表示无返回值)
    • 形式参数表可以为空。
    • 函数不允许嵌套定义!

    递归函数

    当函数的定义中,其内部操作有直接或间接地出现对自身的调用,则称这样的程序嵌套地定义为递归定义

    递归通常将一个大问题层层转化为多个小问题来进行求解,大大减小了程序的代码量。

    例如本题的求阶乘,就可以用下面的递归式表示:

    • xx00 时,f(x)=1f(x) = 1
    • x>0x > 0 时,f(x)=f(x1)×xf(x) = f(x - 1) \times x

    代码实现

    #include <bits/stdc++.h>
    using namespace std;
    
    int f(int x)
    {
    	if (x == 0)
    		return 1;
    	return f(x - 1) * x;
    }
    
    int n;
    
    int main()
    {
    	cin >> n;
    	cout << f(n) << endl;
    	return 0;
    }
    
    • 1

    信息

    ID
    4717
    时间
    1000ms
    内存
    125MiB
    难度
    1
    标签
    (无)
    递交数
    0
    已通过
    0
    上传者