python阶乘
def fun(c):if c ==1:
return 1
else:
return c *(c-1)
x=eval(input('输入一个数字c'))
print(x,'!=',fun(x))
def fun(c):
if c ==1:
return 1
else:
return c *fun(c-1)
x=eval(input('输入一个数字c'))
print(x,'!=',fun(x))
这两段代码运行结果一样
第五行加不加fun有什么区别或者意义吗 加上是递归,不加不是 这结果怎么会一样? 5 * (5 - 1) 跟 5 * fun(5 - 1)能一样?
第一个不是阶乘,是求x * (x - 1)
第二个才是阶乘,用的是递归方式
第一个代码没递归,仅执行一次函数代码就结束了
第二个代码是递归,递归执行直到 if 条件满足递归开始返回
你拿两个值测试下也能明显从结果看出值的不同:
5的阶层为 120 ,而你第一个代码相当于 5 * 4 = 20 就结束返回,而第二个代码正确的返回了 120
页:
[1]