用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')