網易2017校園招聘筆試題 買蘋果

小易去附近的商店買蘋果,奸詐的商販使用了捆綁交易,只提供6個每袋和8個每袋的包裝(包裝不可拆分)。 可是小易現在只想購買恰好n個蘋果,小易想購買儘量少的袋數方便攜帶。如果不能購買恰好n個蘋果,小易將不會購買。
輸入描述:
輸入一個整數n,表示小易想購買n(1 ≤ n ≤ 100)個蘋果

輸出描述:
輸出一個整數表示最少需要購買的袋數,如果不能買恰好n個蘋果則輸出-1

輸入例子:
20

輸出例子:
3

import java.util.Scanner;

public class Main {

    public static void main(String[] arg) {
        Scanner scan = new Scanner(System.in);
        while (scan.hasNext()) {
            int n = scan.nextInt();
            System.out.println(solve(n));
        }
        scan.close();
    }


    private static int solve(int n) {
        int ans = 0;
        while (n >= 6) {
            if (n % 8 == 0) {
                ans += (n >> 3);
                n = 0;
            }else {
                n -= 6;
                ++ans;
            }
        }
        return n == 0 ? ans : -1;
    }

}
發佈了508 篇原創文章 · 獲贊 23 · 訪問量 38萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章