100元买酒,2元买一瓶,两个空瓶换一瓶,求最后能买多少瓶

最近碰到一道题目.就是关于酒瓶的(100元买酒,2元买一瓶,两个空瓶换一瓶,求最后能买多少瓶).

刚开始没头绪,仔细一想原来不过如此.

经过分析,所能买到的酒瓶等于    最后所有的空瓶数

java代码求解如下:

import java.util.Scanner;

public class Bottle {        
 //空瓶数
 static int blank=0;
 //直接能买到的酒瓶数
 static int sum=0;
 public static void main(String[] args) {
  int a=input();
  System.out.println(compute(a));
 }

private static int input() {
  System.out.println("请输入大于1的钱数,我们将会计算你能买多少瓶:");
  Scanner scanner=new Scanner(System.in);
  int i=scanner.nextInt();
  if(i>1)
  return i;
  else{
   return 0;
  }
 }

private static int compute(int a)
 {
  if(a==2)
  {
   return 1;
  }
  else if(a>2){
    sum=a/2;
    while(true)
    {
     sum=sum-1;
     blank=blank+2;
     if(sum<2)
     {
      break;
     }
     System.out.println(blank);
    }
    return blank+sum;
   }
  return 0;
 }
 
}

时间: 2024-10-03 21:53:33

100元买酒,2元买一瓶,两个空瓶换一瓶,求最后能买多少瓶的相关文章

牙膏5元,牙刷2元,肥皂3元,100元买这三种恰好花光,请问有多少种可能性

Console.WriteLine("牙膏5元,牙刷2元,肥皂3元,100元买这三种恰好花光"); int a1 = 0, b1 = 0, c1 = 0, sum = 0; for (int a = 0; a <= 20; a++) { a1 = 5 * a; for (int b = 0; b <= 50; b++) { b1 = 2 * b; for (int c = 0; c < 33; c++) { c1 = 3 * c; if (a1 + b1 + c1 =

(转载)你好,C++(9)坐216路公交车去买3.5元一斤的西红柿——C++中如何表达各种数值数据 3.3 数值数据类型

你好,C++(9)坐216路公交车去买3.5元一斤的西红柿——C++中如何表达各种数值数据 3.3 数值数据类型 3.3  数值数据类型 从每天早上睁开眼睛的那一刻开始,我们几乎每时每刻都在与数字打交道:从闹钟上的6点30分,到上班坐的216路公共汽车:从新闻中说的房价跌到了100元每平米到回家买菜时的西红柿3.5元一斤.我们生活在一个充满数字的世界.程序是对现实世界的描述与表达,自然也会有很多数字需要表达.为了做到这一点,C++提供了丰富多样的数值数据类型,从整数到小数.从单精度浮点数到双精度

考考你、智商题 小明借爸爸500元 又借妈妈500元 买双鞋 970元 还剩30元 还给爸爸10元

考考你.智商题小明借爸爸500元又借妈妈500元买双鞋 970元还剩30元还给爸爸10元又还妈妈10元 自己留10元欠妈妈490 欠爸爸490490+490=980 加上自己的10元=990请问那10元去哪了 解答:还了10元,实际借款就不是500了,是490元.总借款现在已经不是1000元,而是980元.买鞋970元,还剩下10元.

中秋送好礼:天嵌阿里巴巴全场买满1500元返50元

2014天嵌中秋送好礼,广州天嵌也在阿里巴巴店铺做中秋优惠活动,回馈广大支持广州天嵌的客户. 2014年9月4日,在广州天嵌阿里巴巴店铺消费满1500元即可返还50元给客户(适合阿里旺铺的所有产品). 同时,E8.E9卡片式电脑两款产品在活动当天可享受9.5折的优惠(此优惠只适用E8 E9两款产品). 两个优惠活动可叠加进行,这么优惠的活动,亲们还等什么呢?快来广州天嵌阿里巴巴店铺,下面是广州天嵌阿里巴巴店铺的链接: http://embedsky.1688.com/

AOJ 789.买酒

B. 买酒 Time Limit: 1000 ms   Case Time Limit: 1000 ms   Memory Limit: 64 MBTotal Submission: 43   Submission Accepted: 6 Description 众所周知,西瓜是一个很爱喝酒的人.有一天西瓜和朋友去酒楼喝酒,却发现酒楼在大酬宾,活动规则如下.1.全场只要买酒可以买二送一,买2瓶酒就可以送一瓶酒,买4瓶酒就送两瓶酒.2.4个空瓶可以换一瓶酒.3.10个酒瓶盖可以换一瓶酒.4.拿瓶子

循环的经典案例(李白买酒)

1:计算0~100之间所有能被3整除和带3的数字之和 int i=0;//循环变量 int sum=0; while(i<100){ if((i%3==0)||(i%10==3)||(i/10==3)){  sum+=i; } i++; } printf("0~100之间所有能被3整除和带3的数字之和为%d",sum); 2:打印100~1000之间所有水仙花数,并统计其个数:如==>153=1^3+5^3+3^3 int i=100;//循环变量 int count=0,

买酒问题

//啤酒2元一瓶//4个瓶盖换一瓶//2个空瓶换一瓶//10元可以喝几瓶 var a, b, c, d, e, f, g, h, i,total; //a空瓶换的新啤酒 //b瓶盖换的新啤酒 //c本轮换的新啤酒总和a+b //d上轮空瓶换酒后剩下的空瓶数量 //e本轮新增的空瓶数量=c //f本轮结束后空瓶总和d+e //g上轮瓶盖换酒后剩下的瓶盖数量 //h本轮新增的瓶盖数量=c //i本轮结束后瓶盖总和g+h //j循环多少轮的次数计数 c=5; f=5; i=5; total=c; va

多么痛的领悟---关于RMB数据类型导致的元转分分转元的bug

关于金额的数据类型,以及元转分分转元之间这种转换,以元和分的比较,我相信很多人都踩过坑. 反正我是踩过. 而且,昨天和今天又重重的踩了两脚. 代付查询接口,支付中心给溢+响应的报文里,amount的单位是分,这无可厚非,非常合理. 昨天,负责溢+代付的中威反映,有一单虽然返回的是代付成功的状态,但因校验支付中心返回的代付金额与溢+存储的代付金额不一致,而导致溢+未能更新代付单的状态. 经查,db里代付金额字段的数据类型是double,单位是元,程序里对应的pojo也把代付金额的属性设置为doub

绑卡免费拿15元,投900元【拿230元羊毛】中国平安陆金所

2015年1月1日至31日有效(1月13日更新最新规则) http://affiliate.lufax.com/action/DnPg,点此链接注册 快讯:1仟元起投(用币后只需900元),[57天]期限,到期还本付息的[富盈人生],已经放出[第80期],1月23日14点募集结束(可能提前集满结束)大家抓紧吧~~! [关于富盈人生]富盈人生投资方向:(安全性类似于货币基金,但不能随时提现,只能到期一次性收取本息,以下copy陆金所网站)主 要投资于货币基金等货币类资产.央行票据.银行定期存款.国