【PTA数据结构 | C语言版】阶乘的递归实现

本专栏持续输出数据结构题目集,欢迎订阅。

文章目录

题目

请编写程序,求给定非负整数 n 的阶乘。建议用递归方式计算。

输入格式:

输入在一行中给出一个非负整数 n(≤10)。

输出格式:

在一行中输出 n!。

输入样例:

5

输出样例:

120

代码

cpp 复制代码
#include <stdio.h>

// 递归计算阶乘
int factorial(int n) {
    if (n == 0 || n == 1) {
        return 1;  // 递归终止条件:0! 和 1! 等于 1
    } else {
        return n * factorial(n - 1);  // 递归步骤
    }
}

int main() {
    int n;
    scanf("%d", &n);
        
    // 计算阶乘并输出结果
    printf("%d\n", factorial(n));
    
    return 0;
}    
相关推荐
程序员清风10 小时前
算法与数据结构入门:复杂度、数组与链表
数据结构·算法·链表
无定义_10 小时前
Codeforces Round 1124 (Div. 2)
算法
山下梅子酒22510 小时前
洛谷-入门-B2079
c语言
Mr_Macallon11 小时前
C++回顾(基础)(01)
c语言·开发语言·c++·学习
垆边人似月.12 小时前
任务混部(200 分档)
算法
言乐612 小时前
Python区分广度优先深度优先宽度优先的区别
python·算法·深度优先·广度优先·宽度优先
如意猴12 小时前
【C++】007 C/C++ 内存管理机制、malloc与new的区别及模板初阶
java·c++·算法
朝朝辞暮i12 小时前
C++ 第 32 课:main()、rclcpp::init()、spin()、shutdown()
开发语言·c++·算法
wuminyu13 小时前
LockStack在虚拟线程Mount和Unmount拷贝过程剖析
java·linux·c语言·jvm·c++
Felven13 小时前
B. Reverse a Permutation
c语言