2017校招-网易:买苹果

题目描述

小易去附近的商店买苹果,奸诈的商贩使用了捆绑交易,只提供6个每袋和8个每袋的包装(包装不可拆分)。 可是小易现在只想购买恰好n个苹果,小易想购买尽量少的袋数方便携带。如果不能购买恰好n个苹果,小易将不会购买。

输入描述

输入一个整数n,表示小易想购买n(1 ≤ n ≤ 100)个苹果

输出描述

输出一个整数表示最少需要购买的袋数,如果不能买恰好n个苹果则输出-1

示例1

输入
20
输出
3

解题思路

这个题目比较简单,可以直接用暴力的方法,当然也可以用动态规划,类似于跳阶梯,这儿你可以选择买8个每袋装,或者买6个每袋装。

解题代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import java.util.*;

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k1 = n / 6;
int ans = k1 + 1;
for (int i = 0; i <= k1; i++) {
if ((n - 6*i)%8 == 0) {
ans = Math.min(ans, i + (n - 6*i)/8);
}
}
System.out.println(ans == k1 + 1 ? -1 : ans);
}
}
您的支持将鼓励我继续创作!