1. 程式人生 > >Python 遞迴例項

Python 遞迴例項

 

用for 迴圈迭代方式實現階乘

#!/usr/bin/python
def factorial(n):
    result = n
    for i in range(1,n):
        result  *= i
    return result

number = int(input('請輸入正整數:'))
result = factorial(number)
print('%d的階乘是:%d' %(number,result))


直接用遞迴的方式實現階乘

def factorial1(n):
    if n == 1:
        return 1
    else:
        return n * factorial1(n-1)

number = int(input('請輸入一個正整數:'))
result = factorial1(number)
print("%d的階乘是:%d" %(number,result))

 

 

###漢諾塔

#!/usr/bin/python
def hanoi(n,x,y,z):
    if n == 1:
        print(x,'--->',z)
    else:
        
        hanoi(n-1,x,z,y)###將前n-1個盤子從x移動到y上
        print(x,'--->',z) ####將最底下的最後一個盤子從x移動到z上
        hanoi(n-1,y,x,z)###將y上的n-1個盤子移動到z 上



n = int(input("請輸入漢諾塔的層數:"))
hanoi(n,'x','y','z')