【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;
}    
相关推荐
喜欢吃燃面16 小时前
算法竞赛中的堆
c++·学习·算法
资深web全栈开发16 小时前
LeetCode 1590:使数组和能被 p 整除(前缀和 + 哈希表优化)
算法·leetcode·前缀和·算法优化·哈希表·go 语言·取模运算
CoderYanger16 小时前
递归、搜索与回溯-综合练习:27.黄金矿工
java·算法·leetcode·深度优先·1024程序员节
zs宝来了16 小时前
HOT100系列-堆类型题
数据结构·算法·排序算法
报错小能手16 小时前
数据结构 带头节点的链表
数据结构·链表
Christo316 小时前
ICML-2019《Optimal Transport for structured data with application on graphs》
人工智能·算法·机器学习·数据挖掘
sin_hielo16 小时前
leetcode 1590
数据结构·算法·leetcode
吃着火锅x唱着歌16 小时前
LeetCode 2748.美丽下标对的数目
数据结构·算法·leetcode
做怪小疯子16 小时前
LeetCode 热题 100——二叉树——二叉树的中序遍历
算法·leetcode·职场和发展
松涛和鸣16 小时前
DAY20 Optimizing VS Code for C/C++ Development on Ubuntu
linux·c语言·开发语言·c++·嵌入式硬件·ubuntu