【题目】
题目描述
小明去附近的水果店买橙子,水果商贩只提供整袋购买有每袋6个和每袋8个的包装(包装不可拆分)。可是小明只想购买恰好n个橙子,并且尽量少的袋数方便携带。如果不能购买恰好n个橙子,小明将不会购买。
输入描述: 输入一个整数n,表示小明想要购买n(1≤n≤100)个橙子
输出描述: 输出一个整数表示最少需要购买的袋数,如果不能买恰好n个橙子则输出-1
示例
输入 20
输出 3
【思路】
对于输入n,n/8 = m ,如果(n-8i)%6 == 0 说明n可以整除8,正好买m袋8个的,或者在依次递减,减少i袋8个的可以整除6,结果就是m袋8个的和(n-8i)/6 袋6个的。
【实现】
import java.util.Scanner;
import java.util.Stack;
public class kugou1 {
public static void main(String[] args) {
//输入一个整数
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();//输入n位需要购买的n个橙子
int result = getMinPackage(n);
System.out.println(result);
}
public static int getMinPackage(int n){
int num = 0;
for(int i = n/8;i>=0;i--){
if((n-8*i)%6 == 0){
num = i+(n-8*i)/6;
return num;
}
}
return -1;
}
}