织梦本地做网站,企业信息系统有哪些类型,微网站建设计划书,松江新城建设投资有限公司网站与其明天开始#xff0c;不如现在行动#xff01; 文章目录 买苹果1.1 题目描述1.2 解决思路1.3 代码实现 #x1f48e;总结 买苹果
1.1 题目描述
小虎去买苹果#xff0c;商店只提供两种类型的塑料袋#xff0c;每种类型都有任意数量 1)能装下6个苹果的袋子 2)能装下8个… 与其明天开始不如现在行动 文章目录 买苹果1.1 题目描述1.2 解决思路1.3 代码实现 总结 买苹果
1.1 题目描述
小虎去买苹果商店只提供两种类型的塑料袋每种类型都有任意数量 1)能装下6个苹果的袋子 2)能装下8个苹果的袋子 小虎可以自由使用两种袋子来装苹果但是小虎有强迫症他要求自己使用的袋子数量必须最少且使用的每个袋子必须装满。给定一个正整数N返回至少使用多少袋子。如果N无法让使用的每个袋子必须装满返回-1
1.2 解决思路 这个问题输入类型简单就是需要买的苹果返回类型也简单就是使用袋子数量先用暴力方法打表看看有什么规律再根据找出的规律优化code
1.3 代码实现
暴力求解打表
public class AppleMinBags {private static int minBags(int apple) {if (apple 0) {return 0;}int bag6 -1;int bag8 apple / 8;int rest apple % 8;while (rest % 6 ! 0) {bag8--;rest 8;if (bag8 -1) {return -1;}}bag6 rest / 6;return bag6 -1 ? -1 : bag8 bag6;}public static void main(String[] args) {for (int apple 1; apple 100; apple) {System.out.println(apple : minBags(apple));}}
}找到规律 苹果数量是奇数那么返回-1 如果苹果数小于17那么在数量等于6或8时候要一个袋子等于121416的时候需要两个袋子 如果数量大于17每多八个苹果袋子数量就会加一且都是隔一个才需要袋子 优化后的code
public class AppleMinBags {public static int minBagsAwesome(int apple) {if ((apple 1) ! 0) {return -1;}if (apple 17) {return (apple 6 || apple 8) ? 1 :(apple 12 || apple 14 || apple 16) ? 2 :-1;}return (apple - 18) / 8 3;}public static void main(String[] args) {int N 50;System.out.println(minBagsAwesome(N));}
}总结
本文中若是有出现的错误请在评论区或者私信指出我再进行改正优化如果文章对你有所帮助请给博主一个宝贵的三连感谢大家