每天小练笔6-空瓶换饮料

原创 2015年07月07日 17:22:38

题目
描述:
有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?
题目类别: 循环
难度: 中级
运行时间限制: 10Sec
内存限制: 128MByte
阶段: 入职前练习
输入:
输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整数n(1<=n<=100),表示小张手上的空汽水瓶数。n=0表示输入结束,你的程序不应当处理这一行。
输出:
对于每组测试数据,输出一行,表示最多可以喝的汽水瓶数。如果一瓶也喝不到,输出0。
样例输入:
3
10
81
0
样例输出:
1
5
40


找规律
first glass=10
10 / 3 =3 drink
10%3 = 1
second glass=3+1=4
4/3=1 drink
4%3=1
third glass=1+1
….

#include <iostream>
#include <fstream>

using namespace std;

int drink(int cnt)
{
    int drinknum=0;
    int divbuff;
    int yubuff;
    while(1)
    {
        divbuff = cnt / 3;
        yubuff  = cnt % 3;
        drinknum += divbuff;
        cnt = divbuff + yubuff;
        if(cnt == 0)
            break;
        if(cnt == 1)
            break;
        if(cnt == 2)
        {
            drinknum++;
            break;
        }
    }
    return drinknum;
}


int main()
{
    freopen("test.txt","r",stdin);
    int cnt;
    while(cin>>cnt)
    {
        if(cnt == 0)
            break;
        cout<<drink(cnt)<<endl;
    }
    return 0;

}
版权声明:本文为博主原创文章,未经博主允许不得转载。

每天小练笔10-小和尚挑水(回溯法)

题目 某寺庙里7个和尚:轮流挑水,为了和其他任务不能冲突,各人将有空天数列出如下表: 和尚1: 星期二,四; 和尚2: 星期一,六; 和尚3: 星期三,日; 和尚4: 星期五; 和尚5: ...
  • u010442328
  • u010442328
  • 2015年07月20日 17:07
  • 694

每天小练笔4-整数排序操作

题目 描述: 实现输入一组大于等于0的整数,根据从小到大的顺序排序后输出,排序后有连续数时,只输出连续数中最小和最大的两个数。 题目类别: 排序 难度: 高级 运行时间限制: 10Se...
  • u010442328
  • u010442328
  • 2015年07月07日 14:23
  • 246

第二天 每日一句

谢谢大家的厚爱。今天是第二天了,第二个小项目,比第一个要复杂一点点。今天的项目呢是要做一个英语学习小软件,就是英语每日一句。由于是小项目,就不用那么复杂,没有自己去做服务器(自己做也可以,这样最好,可...
  • zhaicaixiansheng
  • zhaicaixiansheng
  • 2015年09月12日 18:40
  • 1641

每日一vim(0)

转载自:http://liuzhijun.iteye.com/category/270228 学习记录为红色留存 突然的一个想法------每天可以坚持写(学)点什么,于是就想到了Vim,...
  • G1036583997
  • G1036583997
  • 2015年12月27日 20:48
  • 360

干货集中营(分享)-每日分享妹子图和技术干货

说明网址:http://gank.io/API接口:http://gank.io/api根据API接口做的一个客户端代码,客户端不是我做的,是@gaolonglong做的。 项目github地址:h...
  • u010156024
  • u010156024
  • 2017年04月25日 11:45
  • 3853

Java获取必应每日一图教程

说真的,java爬取数据也是挺好的,虽然不如python等,但简单的还是可以的,下面我就介绍一下必应每日一图的爬取哈参考博客: 分享几个必应每日图片抓取的方法 - 幻杀博客 这里提供现...
  • simplebam
  • simplebam
  • 2017年05月31日 13:30
  • 1100

Python一日一练100----消息服务器

要求: 创建一个TCP服务器,要求:能接收客户的消息,并在消息前加一个时间戳。 服务器端: # -*- coding: utf-8 -*- ...
  • a359680405
  • a359680405
  • 2015年01月09日 14:23
  • 1565

每日构建系列(1):入门篇

关键词:Daily Build、CI、CCNet、CCTray、VSS、SVN、MSBuild、NAnt、NUnit、Email、FxCop、NCover、NCoverExplorer、RSS、SCM...
  • u013948187
  • u013948187
  • 2015年12月13日 22:56
  • 279

Bing获取-获取Bing每日图片

去年12月份写了一个Bing缤纷壁纸,功能是获取Bing首页的图片并且保存到本地电脑上。 其实那个程序存在的巨大的BUG,获取源码的问题导致只能获取某个日期的图片。 今天在Bing首页中研究出一种新的...
  • mayuko2012
  • mayuko2012
  • 2015年08月11日 23:59
  • 1419

C++每日一练(I/O)

一、今日课题I/O二、实战演练 大多数计算机语言的输入输出的实现都是以语言本身为基础的,但是C/C++没有这样做。C语言最初把I/O留给了编译器实现人员。这样做的一个原因是可以提供足够的自由度,使...
  • lxy_2011
  • lxy_2011
  • 2016年10月14日 15:52
  • 488
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:每天小练笔6-空瓶换饮料
举报原因:
原因补充:

(最多只允许输入30个字)