一个酒鬼有20美元,三美元可以买一瓶酒,三个空瓶子可以换一瓶酒

今天看了一个朋友分享的一个笔试题,闲着无聊自己实现了下,题目如下:


1.一个酒鬼有20美元,三美元可以买一瓶酒,三个空瓶子可以换一瓶酒,那么用程序实现这个酒鬼最多能

喝多少瓶酒(不要求结果,要求程序过程)


程序如下:

public class Drunkard {

	public static void main(String[] args) {
		int dollar = 20; //美元
		int paged = 3;  //多少美元买一瓶啤酒
		int pageb = 3; //多少瓶子换一瓶啤酒
		
		int beer = getBeerSum(dollar, paged ,pageb);
		System.out.println("酒鬼共喝了:"+beer+" 瓶酒");
	}
	
	/**
	 * 得到总共的啤酒数
	 * @param dollar
	 * @param paged
	 * @param pageb
	 * @return
	 */
	public static int getBeerSum(int dollar, int paged, int pageb){
		int beer = dollar/paged; //总共啤酒数
		int bottle = dollar/paged; //剩余的瓶子数
		
		while(bottle>=pageb){
			int each = bottle/pageb;
			beer += each;
			bottle = bottle%pageb + each;
		}
		
		return beer;
	}

}

不知是否实现完整,欢迎指出。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
# 酒鬼温迪 ## 题目描述 温迪喜欢喝,尤其是苹果和蒲公英。苹果有等级高低,共等,蒲公英最为名贵。最低等级的苹果价钱$x$元/瓶,中等的$y$元/瓶,最高等级的$z$元/瓶,蒲公英一瓶$w$元/瓶,一桶的价钱和量是一瓶的五倍。温迪喝了$o$瓶酒和$p$桶,他的量上限是$q$瓶酒和$r$桶,超过这个上限就会酩酊大醉。迪卢克来到窖抓他时的愤怒值是温迪喝的钱数,如果温迪醉倒,他的愤怒值会是原本的2倍。事后,温迪又需要靠卖唱来赔偿迪卢克。 问,迪卢克最后的愤怒值是多少,温迪需赔偿迪卢克多少钱。 ## 输入格式 共行,第一行4个正整数,$x$、$y$、$z$、$w$,中间以格隔开; 第二行4个非负整数,$o$、$p$、$q$、$r$,中间以格隔开; 第行$o+p$个字符串,分别是他喝的每一瓶(或桶)(低等瓶苹果是`LA`,中等苹果是`MA`,高等苹果是`HA`,蒲公英是`DA`,如果按桶算则在前面加上`B`)中间以格隔开。 ## 输出格式 一行,两个非负整数,分别是迪卢克的愤怒值和温迪需赔偿的钱数,中间以格隔开。 ## 样例 #1 ### 样例输入 #1 ``` 1 2 3 4 2 3 4 5 MA HA BDA BDA BDA ``` ### 样例输出 #1 ``` 65 65 ``` ## 样例 #2 ### 样例输入 #2 ``` 1 2 3 4 2 3 1 1 MA HA BDA BDA BDA ``` ### 样例输出 #2 ``` 130 65 ``` ## 提示 $1$$≤$$x$$≤$$y$$≤$$z$$≤$$w$$≤$$10^7$; $0≤o≤100$,$0≤p≤100$,$0≤q≤1000$,$0≤r≤1000$.
最新发布
07-15

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值