遞歸小栗子

一、alex多大了

def alex(n):
   	     if n == 4:
                   return 40
       else:
             return alex(n+1)+2
        print(alex(1))              # 46

二、階乘
def jiec(n):
    	   if n == 1:
        	return 1
    	   else:
        	return n*jiec(n-1)
       print(jiec(3))              # 6

三、斐波那契數列
def feib(n):
    if n == 1 or n == 2:
        return 1
    else:
        return feib(n-1) + feib(n-2)
print(feib(33))               # 3524578
四、二分查找
def erfen(l,aim,start = 0,end = None):
    if end == None:
        end = len(l) - 1
    if start <= end:
        mid = (end - start)//2 + start
        if l[mid] < aim:
            return erfen(l,aim,start,mid-1)
        elif l[mid] > aim:
            return erfen(l,aim,mid+1,end)
        else:
            return aim,mid
    else:
        print('找不到')
l = [1,2,4,59,60,78,90]
print(erfen(l,59))
五、三級菜單
def f(m):
    while True:
        for i in m:
            print(i)
        choice = input('選擇:')
        if choice == 'q' or choice == 'b':
            return choice
        elif choice in m and m[choice]:
            borq = f(m[choice])
            if borq == 'q':
                return 'q'
print(f(menu))

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章