zoukankan      html  css  js  c++  java
  • 我中招了:解喝汽水问题

    这是一道从别人博客里看到的趣味题:

    [题目]1元钱一瓶汽水,喝完后两个空瓶换一瓶汽水,问:你有20元钱,最多可以喝到几瓶汽水?

     

    我想当然地以为是20—>10—>5—>2—>1,漏了一瓶...

    还是写个程序来解决一下:

    设每次买一瓶,攒够2个空瓶就换一瓶汽水:

    def qishui1( m ):
        s = 0 # 喝去的汽水瓶数
        k = 0 #空瓶数
        while m>0:
            m=m-1 #买 1瓶
            s=s+1 
            k=k+1
            while k==2:
                k=0 
                s=s+1 #换一瓶汽水,喝掉
                k=k+1 #又多出来一个空瓶
        return s,k
    m = 20
    s,k=qishui1(m)
    print(m,"元,最多可以喝",s,"瓶汽水,手中还有",k,"个空瓶")

    20 元,最多可以喝 39 瓶汽水,手中还有1个空瓶

     

    考虑用递归来解:

    钱数   总瓶数   空瓶数  

    1元  1    1      f(1)=1

    2元  3    1      f(2)=f(1)+2

    3元  5    1   f(3)=f(2)+2

    x元   2x-1     1   f(x)=f(x-1)+2

     

    def f(x):
        if x<1:
            return 0
        elif x==1:
            return 1
        else:
            return f(x-1)+2

     

     

     

     

    None
  • 相关阅读:
    Java——IO输入/输出
    高级查询---嵌套and分页
    Spring mvc拦截器
    SpringMVC实现文件下载
    SpringMVC是实现文件上传
    初始化参数绑定(日期)
    数据校验
    Web Service
    可以用代码发邮件了哦
    JavaMail和James
  • 原文地址:https://www.cnblogs.com/yuxc/p/2124142.html
Copyright © 2011-2022 走看看