2018 아 리 채용 클 라 이언 트 필기시험 프로 그래 밍 문제

며칠 전 알 리 바 바 의 2018 년 클 라 이언 트 개발 엔지니어 필기시험 문 제 를 풀 었 는데 이 제 는 필 기 를 해 볼 생각 이다.동료 들 과 나 누 어 나누다.
4. 567917. 그 중 한 문 제 는 다음 과 같다. 4. 567918.
알 리 바 바 의 식당 은 한 음료 1 병 에 3 위안, 병뚜껑 4 개 에 한 병, 빈 병 2 개 에 한 병, 30 위안 에 최대 몇 병 을 마 실 수 있 는 것 으로 알려 져 있다.입력: A / A 는 음료수 단가 B / / 표시 병뚜껑 교환 병 비 C / C 표시 빈 병 교환 비 D / D 표시 주어진 금액 출력: S 예: 입력: 32 30 출력: 35
사고방식 이 매우 간단 하여 귀속 적 인 방법 을 채택 하 다.음료 수 를 바 꿀 때마다 병뚜껑 과 빈 병 이 필요 하기 때문이다.여기 바로 코드 를 달 았 습 니 다.
import java.util.Scanner;

/**
 * Created by zf
 * Date: 2017/8/25
 */
public class Main {

    public static int count = 0;
    public static int mcap = 0;
    public static int mbottle = 0;

    public static void sum(int nowCap, int nowBottle) {
        if (nowCap >= mcap) {
            int newGet = nowCap / mcap;
            count += newGet;
            nowCap = newGet + nowCap % mcap;
            nowBottle += newGet;
        }
        if (nowBottle >= mbottle) {
            int newGet = nowBottle / mbottle;
            count += newGet;
            nowBottle = newGet + nowBottle % mbottle;
            nowCap += newGet;
        }
        if (nowCap >= mcap || nowBottle >= mbottle) {
            sum(nowCap, nowBottle);
        }
    }


    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());
        mcap = _cap;

        int _emptyBottle;
        _emptyBottle = Integer.parseInt(in.nextLine().trim());
        mbottle = _emptyBottle;

        int _money;
        _money = Integer.parseInt(in.nextLine().trim());

        count = _money / _price;
        sum(count, count);
        System.out.println(count);
    }
}

좋은 웹페이지 즐겨찾기