程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

算法(二)用python編寫[斐波那契數列及漢諾塔]

編輯:Python

前言

本章主要講述 【用python編寫斐波那契數列及漢諾塔】

  • Java編寫:https://blog.csdn.net/Makasa/article/details/90742382

一、具體代碼編寫

"""
用python寫斐波那契數列,以及漢諾塔
知識點:遞歸
"""
def febonnacci(n):
"""
斐波那契數列:1 1 2 3 5 8 13.. 前兩個數之和 = 第三個數
思路:當輸入數字n=1,2時,直接為1,否則為遞歸:fb(n - 1) + fb(n - 2)
:param n:
:return:
"""
if n < 1:
print("重新輸入大於等於1的數")
return -1
if n == 1 or n == 2:
return 1
else:
return febonnacci(n - 1) + febonnacci(n - 2)
def hanota(n, x, y, z):
"""
漢諾塔算法:
:param n: 總共有n個盤子
:param x: x柱子
:param y: y柱子
:param z: z柱子
:return:
"""
if n == 1:
print("第1個盤子從 " + x + " 移動到 " + z)
else:
hanota(n - 1, x, z, y) # 將前n-1個盤子從a移動到b上
# print(x, "移動到", z) # 將最底下的最後一個盤子從a移動到c上
print("第" + str(n) + "個盤子從 " + x + " 移動到 " + z) # 將最底下的最後一個盤子從a移動到c上
hanota(n - 1, y, x, z) # 將b上的n-1個盤子c上
if __name__ == '__main__':
result = febonnacci(2)
print("斐波那契數列結果為:", result)
hanota(2, "x", "y", "z")

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved