题目描述
小明去附近的水果店买橙子,水果商贩只提供整袋购买,有每袋6个和每袋8个的包装(包装不可拆分)。可是小明只想购买恰好n个橙子,并且尽量少的袋数方便携带。如果不能购买恰好n个橙子,小明将不会购买。
输入描述:
输入一个整数n,表示小明想要购买n(1≤n≤100)个橙子
输出描述:
输出一个整数表示最少需要购买的袋数,如果不能买恰好n个橙子则输出-1
思路:
首先分别求出单独买8个一袋的最多能买多袋和单独买6个一袋的能买多少袋,然后两层循环就能解决问题了(开代码能更容易看懂)
喜欢的老铁们留个赞呗
放代码:
import java.util.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner cin = new Scanner(System.in);
int n = cin.nextInt();//
int a = n / 8 + 1;// 买8个一袋的最多能买多少袋
int b = n / 6 + 1;// 买6个一袋 的最多能买多少袋
int temp = -1;// 最少需要的袋数
for (int i = 0; i < a; i++) {
for (int j = 0; j < b; j++) {
if (6 * j + 8 * i == n) {// 8个一袋的总数加上6个一袋的总数等于n代表买j个6个一袋的和i个8个一代的能刚好买到n个橘子
temp = i + j;
break;
}
}
}
System.out.println(temp);// 输出需要的最少袋数
}
}