洛谷C++简单题小练习day15—计算阶乘小程序(不用循环)

day15-- 计算阶乘小程序--2.19

习题概述

题目描述

求 n!,也就是 1×2×3⋯×n。

挑战:尝试不使用循环语句(for、while)完成这个任务。

输入格式

第一行输入一个正整数 n。

输出格式

输出一个正整数,表示 n!

代码部分

#include<bits/stdc++.h>
using namespace std;

int factorial(int n) //递归函数计算阶乘
{
	//0和 1的阶乘都为1
    if (n == 0 || n == 1) {
        return 1;
    } else {
        return n * factorial(n - 1);
    }
}
int main() {
    int n;
    cin >> n;
    if (n < 0) {
        cout << "输入的数应为正整数!" << endl;
    } else {
        int result = factorial(n);
        cout << result << endl;
    }
    return 0;
}

心得体会

else { return n * factorial(n - 1); }如果输入的n不是0或1(值相同需单独考虑),则执行这部分代码。函数通过递归调用自身来计算 ++n的阶乘++ :函数返回n乘以调用factorial(n-1)的结果,即n与比n小1的数的阶乘的乘积。通过不断递归调用直到满足基准情况,最终实现计算n的阶乘的目的。

相关推荐
问道飞鱼3 分钟前
【前端知识】强大的js动画组件anime.js
开发语言·前端·javascript·anime.js
拓端研究室3 分钟前
R基于贝叶斯加法回归树BART、MCMC的DLNM分布滞后非线性模型分析母婴PM2.5暴露与出生体重数据及GAM模型对比、关键窗口识别
android·开发语言·kotlin
Code成立4 分钟前
《Java核心技术I》Swing的网格包布局
java·开发语言·swing
Auc249 分钟前
使用scrapy框架爬取微博热搜榜
开发语言·python
QQ同步助手15 分钟前
C++ 指针进阶:动态内存与复杂应用
开发语言·c++
不惑_18 分钟前
List 集合安全操作指南:避免 ConcurrentModificationException 与提升性能
数据结构·安全·list
凯子坚持 c22 分钟前
仓颉编程语言深入教程:基础概念和数据类型
开发语言·华为
小爬虫程序猿24 分钟前
利用Java爬虫速卖通按关键字搜索AliExpress商品
java·开发语言·爬虫
程序猿-瑞瑞26 分钟前
24 go语言(golang) - gorm框架安装及使用案例详解
开发语言·后端·golang·gorm
qq_4335545426 分钟前
C++ 面向对象编程:递增重载
开发语言·c++·算法