breaki 发表于 2020-7-7 14:38:36

python 阶乘

def sjn(n):
    if n ==1:
      return 1
    else:
      return n*sjn(n-1)
member=int(input('请输入一个正整数:'))
result=sjn(member)
print('%d的阶乘是:%d'%(member,result))
求助,为什么当阶乘大于1的时候,return 1没有用啊。

Twilight6 发表于 2020-7-7 14:42:42




因为 if n ==1是条件呀,只有当 n == 1 的时候才执行 if 下面的代码块 return 1

当 if 条件不成立的时候,是不执行 if 下面的代码块,而执行 else 的代码块进入递归


yhhpf 发表于 2020-7-7 14:42:51

看楼上。

heidern0612 发表于 2020-7-7 14:47:54

阶乘不就是你定义函数的n吗?

函数中不是自己定义的只有n等于1的时候才返回1吗?

大于1的话,就执行else了,程序开始递,一直到你n减少到等于1的时候,返回1,程序开始归。
页: [1]
查看完整版本: python 阶乘