• 2019.1.8兔子问题和汉诺塔问题的解决代码


    #兔子问题用递归法解决
    def factorial(n):
        if n<1:
            print("输入有误,请返回重新输入!")
            return -1
        if n==1 or n==2:
            return 1
        else:
            return factorial(n-1)+factorial(n-2)
    number=int(input("请输入兔子繁殖的朋数:"))
    result=factorial(number)
    if result !=-1:
        print("%d月后生%d对小兔子" %(number,result))
    
    print("="*80)
    
    #兔子问题用迭代方法解决 这个方法效率高。
    def fab(n):
        n1=1
        n2=1
        n3=1
        if n<1:
            print("输入有误")
            return -1
        while (n-2)>0:
            n3=n2+n1
            n1=n2
            n2=n3
            n-=1
        return n3
    result=fab(40)
    if result !=-1:
        print("总共有%d对小兔子" %result)
    
    #汉诺塔解决方法
    def hanor(n,x,y,z):
        if n==1:
            print(x,"-->",z)
        else:
            
            hanor(n-1,x,z,y)#将前n-1个盘子从x移动到y上
            print(x,"-->",z,)#将最底下的最后一个盘子从x移动到z上
            hanor(n-1,y,x,z)#将y上的n-1个盘子移动到z上
    
    n=int(input("请输入汉诺塔的层数:"))
    hanor(n,"x","y","z")
  • 相关阅读:
    用好C++的智慧
    git patch
    ORACLE 11G导入数据报ORA-12154错误解析
    graphviz
    resource for better user experiences
    reference
    xv6
    common use tools provided as website
    eclipse plugins
    Massive Online Open Course sites
  • 原文地址:https://www.cnblogs.com/bcyczhhb/p/10240334.html
Copyright © 2020-2023  润新知