求一个数的阶乘
# 迭代方法实现
def factIter(n):
result = n
for i in range(1, n):
result *= i
return result
print(factIter(10))
# 递归方法实现
def funC(n):
if n == 1:
return 1
else:
return n * funC(n-1)
print(funC(10))
斐波那契数列
# 迭代方法实现
def fibIter(n):
a = 1
b = 1
c = 1
while n > 2:
c = a + b
a = b
b = c
n -= 1
return c
print(fibIter(12))
# 递归方法实现
def fibRecur(n):
if n == 1 or n == 2:
return 1
else:
# print(fibRecur(n - 1))
# print(fibRecur(n - 2))
return fibRecur(n-1) + fibRecur(n-2)
print(fibRecur(12))
汉诺塔
def hanoi(n, x, y, z):
if n == 1:
print(x, "移动到》》》", z) # 如果只有 1 层,直接将金片从 x 移动到 z
else:
hanoi(n - 1, x, z, y) # 将x上的n - 1 个金片移动到y
print(x, "移动到》》》", z) # 将最底下的金片从 x 移动到 z
hanoi(n - 1, y, x, z) # 将y上的n - 1 个金片移动到z
n = int(input("请输入汉诺塔的层数:"))
print(hanoi(n, "A", "B", "C"))
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/279006.html