当前位置: 首页 > article >正文

Python---函数递归---练习:使用递归求N的阶乘(如n=100)(本文以递归算法 解法为主)

相关链接:Python---函数递归---练习:斐波那契数列(本文以递归算法为主)-CSDN博客

Python---if选择判断结构、嵌套结构(if elif else)_python多重if嵌套-CSDN博客

案例:使用递归求N的阶乘(如n=100)

思考:

首先明确,阶乘是什么?--------不会就百度搜下,或者CSDN搜下,找答案。

一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,

如:n!=1×2×3×...×(n-1)×n

转换数值---例如:

1! = 1

2! = 1x2 = 2

3! = 1x2x3 = 6

4! = 1x2x3x4 = 24

...

n!=1×2×3×...×(n-1)×n

根据编写递归三步走

第一步:明确这个函数要做什么以及定义函数以及调用方式


def f(n):


# 编写递归条件

print(f(100))

第二步:寻找递归的结束条件


def f(n):
    # 编写递归结束条件
    if n <= 2:
        return n
    # ...递归等式
print(f(100))

第三步:编写递归等价公式(自己要调用自己)

等价公式 = 找规律

1! = f(1) = 1

2! = f(2) = 2

3! = f(2)x3 = 6

4! = f(3)x4 = 24

...

n!= f(n-1) * n


def f(n):
    # 编写递归结束条件-----if如果 n是1,那么< 2,返回1,n是2,那么= 2,返回2,
    if n <= 2:
        return n
    # ...递归等式-------公式,规律写出来
    return f(n-1) * n
print(f(100))



http://www.kler.cn/news/156185.html

相关文章:

  • 领域驱动架构(DDD)建模
  • Rstudio-server无法登陆?几种解决方法 卡死 崩溃了
  • 基本面选股的方法
  • 基于Java SSM框架实现美好生活九宫格日志网站系统项目【项目源码+论文说明】计算机毕业设计
  • Java内存缓存神器:Caffeine(咖啡因)
  • qt-C++笔记之addItem(), addWidget(), addLayout()
  • Kettle 安装配置
  • 关于随机数的设定和随机噪声
  • SQLserver通过字符串中间截取然后分组
  • 【MySQL 20题练习 包含:select,join,union,where 等复合语句】
  • RT-Thread 汇编分析启动流程
  • PCL 空间直角坐标系与极坐标系的相互转换(C++详细过程版)
  • Docker下安装可视化工具Portainer
  • 前端下载文件的方法-blob下载
  • LLM推理部署(五):AirLLM使用4G显存即可在70B大模型上进行推理
  • Prime 2.0
  • 基于maobox-gl 纯前端绘制全球色斑图
  • 布局问题1:addSpacing()和setSpacing()函数的区别?
  • C++服务器 支持http、tcp protobuf、websocket,linux开源框架 零依赖轻松编译部署 Reactor
  • nodejs实现文件/目录的压缩和解压
  • 【微信小程序】上传头像 微信小程序内接小程序客服
  • C++ day51 买卖股票最佳时期
  • 计算机网络——习题
  • 【PTA-C语言】编程练习3 - 循环结构Ⅱ
  • 安装配置JDK1.8
  • 单例模式的实现
  • 字符串转换整数
  • 一个完整的手工构建的cuda动态链接库工程 03记
  • SQL Server 2016(创建数据表)
  • qt-C++笔记之识别点击鼠标右键、点击位置以及Qt坐标系详解