1. 程式人生 > 其它 >演算法實驗報告1——漢諾塔——2020.12.17

演算法實驗報告1——漢諾塔——2020.12.17

技術標籤:python演算法-每日一練演算法python資料結構javac++

演算法實驗報告1——漢諾塔

一丶漢諾塔程式碼

# coding=gbk
__author__ = 'Blockchain_Key'
__time__ = '2020.12.17'

# 漢諾塔問題
# 如果有n個圓盤,所需移動的步數為 2^n-1
i = 0 # 定義全域性變數i
# 定義一個函式給4個引數n是圓盤的個數,a代表A柱子,b,c 函式裡面的是形式引數
def Hanoi(n,a,b,c):
    # 把變數i全域性化,如果不全域性化,只可訪問讀取不能進行操作修改
global i if n==1: i += 1 print('移動第',i,'次',a,'-->',c) else: # 1.把A柱上n-1個圓盤移動到B柱上 Hanoi(n-1,a,c,b) # 傳的才是實際引數 # 2.把A柱上最大的移動到C柱子上 Hanoi(1,a,b,c) # 3.把B柱子上n-1個圓盤移動到C柱子上 Hanoi(n-1,b,a,c) if __name__ =="__main__":
Hanoi(int(input("請輸入圓盤個數:")),'A','B','C')

二丶執行結果

在這裡插入圖片描述

——虎鼓瑟兮鸞回車,仙之人兮列如麻——