概述
小易去附近的商店买苹果,奸诈的商贩使用了捆绑交易,只提供6个每袋和8个每袋的包装(包装不可拆分)。 可是小易现在只想购买恰好n个苹果,小易想购买尽量少的袋数方便携带。如果不能购买恰好n个苹果,小易将不会购买。
import java.util.*;
public class Main {
public static int getNum(int n){
int temp = -1;
//要想使得购买尽量少的塑料袋,则金量购买8个每袋的
//可以构建一个循环,从最大可选择的8个每袋的种类开始,一直到0
//如果计算结果刚好等于n,则退出循环
for(int i = n/8;i>=0;i--){//i表示8个每袋的数量,依次递减
//不是8个每袋的数量若是6的整数倍,则满足
if((n-i*8)%6 == 0){
//满足时计算总的袋子数,直接退出
temp = i+(n-i*8)/6;
return temp;
}
}
return temp;
}
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int n = in.nextInt();
in.close();
System.out.print(getNum(n));
}
}
时间复杂度:O(n)
空间复杂度:O(1)
最后
以上就是默默马里奥为你收集整理的买苹果并且节省袋子的问题的全部内容,希望文章能够帮你解决买苹果并且节省袋子的问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复