乐愚社区Beta

 编程语言  >  python简单的递归

python简单的递归

P2P  L3  • 2020-10-17 • 回复 2 • 只看楼主举报    

  常见递归问题例如求5的阶乘(5*4*3*2*1)

  可以用循环来解决

i = 1
result = 1
while i<=5:
    result = result * i
    i+=1

print(result)

  接下来是用函数递归的方法

def getNums(num):
    if num>1:
        return num * getNums(num-1)
    else:
        return num

result = getNums(5)
print(result)

  递归问题其实就两个点,起始的值以及末尾的值,以5的阶乘为例,起始值为5,5乘上4的阶乘即可,而4的阶乘等于4乘上3的阶乘,以此类推直到乘到1为止,1就是末尾的值,乘0的话就没有意义了,所以当num等于1的时候返回1的值就行了

  接下来可以优化一下,让用户进行输入

def getNums(num):
    if num>1:
        return num * getNums(num-1)
    else:
        return num
number = int(input("请输入一个数字"))
result = getNums(number)
print(result)

  如果大家喜欢这样的教学方式,以后会尽量带来一些基础教学用代码讲解

  


2条回帖
Walker  管理员   L12  评论于
(0)  回复(1) 1#
不错
P2P 楼主
发表在2020-10-17 回复
  
:)
还没注册帐号?快来注册社区帐号,和我们一起嗨起来!
关于本社区

集各类兴趣爱好于一身的轻量化交流社区,在此您可以和他人一起分享交流您觉得有价值的内容,社区鼓励大家发表原创内容,为社区添砖加瓦!

发帖奖励 → 社区版规 → 招聘版主 →
推荐版块
扫描二维码下载社区APP
回到顶部