詮釋遞迴函式最好的兩個例子

2021-07-02 18:10:21 字數 908 閱讀 3592

1.詮釋基本的遞迴函式的定義---n!(階乘)

fact(n)=n!=1*2*3*...*(n-1)*n=(n-1)!*n=fact(n-1)*n;

python**:

def fact(n):

if n == 1:

return 1

return n * fact(n-1)

2.完美詮釋遞迴函式---

斐波那契數列和漢諾塔問題

a.

斐波那契數列

斐波那契數列是指:0,1,1,2,3,5,8,13,21...這樣的數列,其公式為:f(0)=0;f(1)=1;f(n)=f(n-1)+f(n-2);(n

≥2);

python**:

def f(n):

if n == 0:

return 0

elif n == 1:

return 1

else:

return f(n-1) + f(n-2)

b.漢諾塔問題

漢諾塔問題簡單講就是將a柱上的所有借助b柱移動到c柱的過程。

python**:

def show(a.b):

print "%s --> %s" % (a,b)

def move(n,a,b,c):

if n < 1:

print "error: n < 1"

elif n == 1:

show(a,c)

else:

move(n-1,a,c,b)

show(a,c)

move(n-1,b,a,c)

關於演算法的兩個例子

def brute force li,target n len li for i in range 0,n for j in range i 1,n if li i li j target return i,jdef bin search li,val low 0 high len li 1 whi...

遞迴的兩個例子 全排列和子集(C )

一 全排列 我理解全排列的思想就是 乙個陣列每次都把位於第一的元素拿出與它之後的每乙個元素交換,確保每個元素都有機會做當前排列的第一位,再對除此位之外的後面所有元素進行子陣列的全排列,依次遞迴,直到該元素之後沒有元素了就一次輸出這個被交換好的數列 includeusing namespace std...

學習shell程式設計的兩個例子

例子一 繪製特殊圖形 如下 bin bash max no 0 echo n enter number between 5 to 9 read max no if max no ge 5 a max no le 9 then echo wtf.i ask to enter number betwee...