求助!一个代码不懂

求助!一个代码不懂

def fib(n):
    print 'n=',n
    if n>1:
        return n*fib(n-1)
    else:
        print'end os the line'
        return 1

s=fib(5)
print s
为什么等于120
n*fib(n-1)如何理解??
想破脑袋了。。
唉   又是递归。求n的阶乘函数的递归写法。
这为大哥
*不是乘号吗?
怎么又到递归上去饿?
我原本对递归有点概念的被你一说忘记什么是递归了你给解释下吧  为什么这里就编程递归了
http://baike.baidu.com/view/96473.htm
递归就是在函数里调用函数本身,如此反复。

找些基础书看看哦,很多编程语言里都有过这个概念的。
5*4*3*2*1难道不等于120吗?
求菲波纳契是典型的递归应用。任何书上都应该讲的。

原理就是
5!=5X4!
4!=4X3!
3!=3X2!
2!=2X1!
1!=1

小菜鸟没上过大学,高中都是混的,没有基础啊.
TNN的递归可不是地瓜 不过我终于能看懂了,原来要画出来才能搞懂,不过叫我设计我还是不会
确实解释起来比较麻烦怪不得都一句递归了事。。
s=fib(5)
带入
5X[fib(n-1)]
由于fib(n-1)所以又把4传递给函数
5X[4Xfib(n-1)]
以此类推到最后不能传递的时候 就是结果了
看来我哈是满聪明的
这为热心的大哥 谢谢了 不过我们讨论的是python的东东 !=不是不等于的意思吗 虽然你的意思我明白 不过你还是要解释下的 不要乱入好不好


QUOTE:
原帖由 zhenglxd 于 2009-2-10 13:12 发表
这为热心的大哥 谢谢了 不过我们讨论的是python的东东 !=不是不等于的意思吗 虽然你的意思我明白 不过你还是要解释下的 不要乱入好不好

-_____________________________________________-


QUOTE:
原帖由 zhenglxd 于 2009-2-10 13:12 发表
这为热心的大哥 谢谢了 不过我们讨论的是python的东东 !=不是不等于的意思吗 虽然你的意思我明白 不过你还是要解释下的 不要乱入好不好

你要把数学原理说明(当然是用数学符号表示)和程序设计语言的实现(用语言的语法)区分开。