zoukankan      html  css  js  c++  java
  • 算法 汽水瓶

    题目描述

    有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?

    输入描述:

    输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整数n(1<=n<=100),表示小张手上的空汽水瓶数。n=0表示输入结束,你的程序不应当处理这一行。

    输出描述:

    对于每组测试数据,输出一行,表示最多可以喝的汽水瓶数。如果一瓶也喝不到,输出0。

    示例1

    输入

    复制
    3
    10
    81
    0
    

    输出

    复制
    1
    5
    40

    思路:
    3个空瓶子换1瓶汽水+1空瓶子,2空瓶子换1瓶汽水+0空瓶子,1空瓶子换0瓶汽水
    f(1)=0
    f(2)=1
    f(3)=1+1
    f(4)=f(3-2)+1
    f5(5)=f(5-2)+1
    ````
    fn = f(n-2)+1


    #include <iostream>
    #include <algorithm>
    #include <string.h>
    #include <string>
    #include <map>
    using namespace std;

    int f(int n)
    {
      if(n==1) return 0;
      if(n==2) return 1;
      return f(n-2)+1;
    }

    int main()
    {
      int n;
      while(cin >> n){
      if(n==0)
        break;
      cout<<f(n)<<endl;
      }
      return 0;
    }

    参考:https://blog.csdn.net/u011544909/article/details/79839943

  • 相关阅读:
    IOS开发--第四阶段--关联
    1.7 Flask
    1.4 linux 路飞项目
    linux 1.3 nginx 负载均衡和配置文件
    1.2 redis
    1.1 xinnian
    12.30 linux 7
    12.29
    12.29 linux3 mysql和redis
    12.28 linux 第四天 安装python 和虚拟环境
  • 原文地址:https://www.cnblogs.com/liuruoqian/p/11672111.html
Copyright © 2011-2022 走看看