首先科普下何为阶乘:

阶乘指从1×2×3×4一直乘到所要求的数。

比如所要求的数是4,则阶乘式是1×2×3×4,得到的积是24,24就是4的阶乘。 又比如所要求的数是6,则阶乘式是1×2×3×……×6,得到的积是720,720就是6的阶乘。

所以当要求的数是n,则阶乘式是1×2×3×……×n,设得到的积是x,x就是n的阶乘。任何大于1的自然数n阶乘表示方法: n!=1×2×3×……×n  或 n!=n×(n-1)!   5!=5*4*3*2*1=120。

阶乘的公式要记住:

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

本题适用递归方法,大大降低难度,不过首先,必须知道何为递归:

递归是方法自己调用自己自身,每次调用时传入不同的变量,有助于编程解决复杂的问题,同时可以让代码变得简洁。

记住这样就可以开始写了

代码如下:

# 循环实现
n = int(input("请输入一个正整数:"))
factorial = 1                        #阶乘的英文factorial
for i in range(n, 0, -1):factorial *= i
print("n! = %d" % factorial)
# 递归实现
i = int(input("请输入一个正整数:"))
def func(i):                        #定义参数if i==1:return 1else:return func(i-1)*i
print("n! = %d" % func(i))

效果如下:

python-4. 编写一个求整数n的阶乘(n!)的程序相关推荐

  1. 如何用Python编写一个求 1到n阶乘之和的程序

    各位许久不见了,甚是想念! 前段时间我进入高中阶段学习,一直还没有适应,现在好些了就继续写博客了. 看到很多人关注我,点赞或是评论,我感觉太高兴了! C语言这块我暂时先放下了,我想自己学学Python ...

  2. python9行代码_如何用9行Python代码编写一个简易神经网络

    原标题:如何用9行Python代码编写一个简易神经网络 Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 学习人工智能时,我给自己定了一个目标--用Pyth ...

  3. c语言中fact函数怎么调用,C语言程序题: 1、编写一个求n!的函数fact(n),要求fact函数分别用递归和非递归两种方法实现...

    点击查看C语言程序题: 1.编写一个求n!的函数fact(n),要求fact函数分别用递归和非递归两种方法实现具体信息 答:int fac(int n) //非递归{int f=1; for(;n;) ...

  4. c语言计算二次函数顶点坐标,C语言编写一个求一元二次方程的实根的程序。 编辑一个小程序去做一元二次方程的求解(b^24ac)...

    导航:网站首页 > C语言编写一个求一元二次方程的实根的程序. 编辑一个小程序去做一元二次方程的求解(b^2>4ac) C语言编写一个求一元二次方程的实根的程序. 编辑一个小程序去做一元二 ...

  5. 函数指针定积分C语言,急!!!利用函数指针变量编写一个求定积分的通用函数,...

    急!!!利用函数指针变量编写一个求定积分的通用函数, 答案:4  信息版本:手机版 解决时间 2021-05-05 09:17 已解决 2021-05-05 02:15 用它分别求5个函数的定积分:每 ...

  6. 编写一个求定积分的通用函数

    /* 作业: 编写一个求定积分的通用函数,用它分别求以下几个积分: double integral(double a, double b, double (*f)(double)); */ #incl ...

  7. C++编写一个求x的n次方的函数

    例3-1编写一个求x的n次方的函数 #include <iostream>using namespace std;//计算x的n次方double power(double x, int n ...

  8. c语言 编写一个求圆面积的函数area,该函数有一个形式参数r,c语言编写一个求圆面积的函数area,有形参,类型为float...

    用c语言编写函数,求圆的周长和面积,用函数.急求. #include#definePI3.1415926doublearea(doubler){returnPI*r*r;}doubleperimete ...

  9. 编写一个计算机矩形的周长和面积的程序 两种方法

    编写一个计算机矩形的周长和面积的程序 操作步骤 方法一 基础篇 leight = int(input("输入矩形的长:")) width = int(input("输入矩 ...

最新文章

  1. 【网摘】检测 iframe 是否加载完成
  2. JavsScript中DOM的基本操作
  3. 学习微信公众号oauth2.0
  4. Java笔记-异常机制中try(...)中括号的用法
  5. 算法的优缺点_朴素贝叶斯算法的优缺点
  6. 小白也会用的SQL优化工具推荐
  7. php视频直播技术,PHP写在线视频直播技术详解
  8. 计算机管理员保密责任书,信息安全保密工作责任书
  9. 安装flash cs6失败解决方案
  10. sumifs两个求和列如何计算_SUMIFS多条件求和,基本使用方法讲解
  11. 简述窄带与宽带信号的区别
  12. 京东网页端顶部导航HTML代码
  13. Putty(菩提)远程连接服务器教程听语音
  14. 实现ISA2004的WPAD(自动发现功能)
  15. 测绘行业如何?从业十年对测绘行业的薄见
  16. 从 RHEL 6 升级至 RHEL 7
  17. 【Java】移位运算
  18. 讷于言而敏于行_百度百科
  19. Aura Components Basics on Trailhead —— Input Data Using Forms
  20. ov5645 mipi 驱动

热门文章

  1. 【云周刊】第173期:直击数博|阿里胡晓明:用100亿的投入撬动1000亿的脱贫效应
  2. 物流行业——即时配送
  3. 计算机电工电子,《电工电子技术练习题(计算机).doc
  4. Cisco思科交换机WS-C2960X-24TD-L使用ftp上传更新丢失IOS方法
  5. 3. Hive分布式数据仓库【华为HCIA-BigData】
  6. 2015年门户网站封杀IP名单
  7. Android 仿微信联系人Demo
  8. 《单片机》实验——实验4 MCS-51内部定时/计数器实验(2)
  9. xlwt设置单元格背景颜色
  10. AVVideoCompositionCoreAnimationTool not work --没有显示CALayer