python3 算法小練習 第二天 斐波那契數列的多種算法、角谷猜想、漢諾塔

#迭代器計算斐波那契數列^_^
class Fibonacci:
    def __init__(self):
        self.a=0
        self.b=1
    def __next__(self):
        result=self.a
        self.a,self.b=self.b,self.a+self.b
        return result
    def __iter__(self):
        return self

fibs =Fibonacci()
for  fib in fibs:
    print(fib,end=' ')
    if fib >500:
        break
#簡單寫法 是不是很簡單呢
num=[0,1]
n=int(input('請輸入一個整數:'))
for i in range(n-2):
    num.append(num[-2] + num[-1])
print(num)
#方法循環,是不是也很方便呢
def fbis(n):
    result=[0,1]
    for i in range(n-2):
        result.append(result[-2]+result[-1])
    return result

while True:
    x=input('請輸入一個整數:')
    if x=='exit':
        break
    n=int(x)
    print(fbis(n))


n = int(input('請輸入一個整數'))
#角谷猜想
while True:
    if n == 1:
        print('1')
        break
    if n % 2 == 0:
        a=n//2
        print(n,'/ 2 = ',a)
        n=a
    else:
        i=n*3+1
        print(n,' * 3 =',n)
        n=i
#漢諾塔
def move(n,a,b,c):
    #a,b,c分別是三根柱子,n爲套在a柱上的圓圈個數
    if n==1:
        print(a,'-->',c)
        return
    move(n-1,a,c,b)
    move(1,a,b,c)
    move(n-1,b,a,c)

下方是漢諾塔遊戲的傳送門哦
http://so2.4399.com/search/search.php?k=�º�ŵ��

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