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...