阿里巴巴2018招聘笔试题喝汽水
程序员文章站
2022-06-09 09:17:44
...
今天做了阿里巴巴2018年的客户端开发工程师的笔试题,
其中有一道题是这样的
阿里巴巴的食堂搞活动促销,已知某饮料1瓶3元钱,
4个瓶盖可以换一瓶,2个空瓶可以换一瓶,则30元
最多可以喝几瓶。
输入:
A //A表示饮料单价
B //表示瓶盖换瓶比
C //C表示空瓶换瓶比
D //D表示给 定的钱数
输出:S
例:
输入:
3
2
30
输出:
35
在这道题体重首先要考虑三个变量分别是
喝汽水总数totle、空瓶子数量mEmptyBottley以及瓶盖mCap
首先第一次买汽水,三个变量的值都等于
money/price,在之后判断mEmptyBottley
和mCap分别大于等于瓶盖换瓶比和瓶身换瓶比时,
相应totle都要加一,而mEmptyBottley和mCap,
都要减去换饮料的用掉的数量,在这里有很重要的一部,就是消耗了相应的瓶子或者瓶盖换了饮料后,瓶子和瓶盖都要加一
- 不说多了,直接上代码。
package com.dxh;
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Main {
/** 请完成下面这个函数,实现题目要求的功能 **/
/** 当然,你也可以不按照这个模板来作答,完全按照自己的想法来 ^-^ **/
static int maxMount(int price, int cap, int emptyBottle, int money) {
int totle,mEmptyBottle,mCap;
totle = mEmptyBottle = mCap = money/price;
while(mEmptyBottle>=emptyBottle||mCap>=cap){
if(mCap>=cap){
totle++;
mCap = mCap - cap + 1;
mEmptyBottle++;
}
if(mEmptyBottle>=emptyBottle){
totle++;
mEmptyBottle = mEmptyBottle - emptyBottle + 1;
mCap++;
}
}
return totle;
}
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int res;
int _price;
_price = Integer.parseInt(in.nextLine().trim());
int _cap;
_cap = Integer.parseInt(in.nextLine().trim());
int _emptyBottle;
_emptyBottle = Integer.parseInt(in.nextLine().trim());
int _money;
_money = Integer.parseInt(in.nextLine().trim());
res = maxMount(_price, _cap, _emptyBottle, _money);
System.out.println(String.valueOf(res));
}
}
上一篇: 阿里巴巴2017秋招研发工程师笔试题
下一篇: JSP开发导引_MySQL
推荐阅读