誰能給我講一下這個遞歸函數的計算過程是怎樣的,實在好難理解!??!
遞歸函數原理。。。。
遞歸函數原理。。。。
2018-07-18
a=4; def?jiecheng(n): ????if?n==2: ????????return?2 ????return?n*jiecheng(n-1) print?jiecheng(a) #?拿這個階乘函數為例,當a=4遞歸的過程是: #?4*jiecheng(3) #?4*(3*jiecheng(2)) #?當n=2時 #?jiecheng(2)返回2 #表達式變為4*(3*2)=4*6=24 #?遞歸函數在沒遇到return?常數之前是沒有實際的計算乘積的
舉報
2018-07-18
遞歸就是在函數內部調用函數本身,?
函數fact(n)?在內部調用fact(n - 1),?而調用fact(n - 1)時又會調用fact(n - 2).?
#每次調用都把參數n替換為n - 1(有點類似數學里的整體代換)
當n減到等于1時不再調用本身,?這個就是遞歸函數的出口,?一直到這時候,?遞歸函數才開始計算數值
1 * 2 * 3 * 4 * ......* (n - 1) * n
也就是n!