阿里巴巴2018招聘笔试题喝汽水

来源:互联网 发布:mac能玩的手游 编辑:程序博客网 时间:2024/04/30 01:02

今天做了阿里巴巴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));         }    }
原创粉丝点击