鱼C论坛

 找回密码
 立即注册
查看: 1545|回复: 3

[已解决]python 阶乘

[复制链接]
发表于 2020-7-7 14:38:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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没有用啊。
最佳答案
2020-7-7 14:42:42



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

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


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-7 14:42:42 | 显示全部楼层    本楼为最佳答案   



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

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


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-7 14:42:51 | 显示全部楼层
看楼上。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-7 14:47:54 | 显示全部楼层
阶乘不就是你定义函数的n吗?

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

大于1的话,就执行else了,程序开始递,一直到你n减少到等于1的时候,返回1,程序开始归。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 01:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表