当前位置: 首页 > article >正文

数据结构与算法--返回袋子数

去商店买苹果,商店只提供两种类型的袋子,只能装下6个苹果的袋子和只能装下8个苹果的袋子。买的苹果,必须用袋子装满,如果装不满,则不买。 给定一个正整数,返回至少使用多少个袋子。


public class Code_AppleMinBags {
    public static int minBags(int apple){
        if(apple < 0){
            return -1;
        }

        int maxE = apple/8;
        int e8=0;
        int e6=0;
        boolean isFind = false;
        for (int i = maxE; i >= 0; i--) {
            e8 = i * 8;
            e6 = (apple-e8)/6;
            if((apple-e8)%6 == 0){
                e8 = i;
                isFind = true;
                break;
            }
        }

        return isFind ? e8+e6 : -1;
    }

    public static int minBagAwesome(int apple){
        if((apple & 1) == 1){ // 如果为奇数,返回-1
            return -1;
        }

        if(apple < 18){
            return apple == 0 ? 0 : (apple == 6 || apple == 8) ? 1 : (apple == 12 || apple == 14 || apple == 16) ? 2 : -1;
        }

        return (apple-18)/8 + 3;
    }

    public static void main(String[] args) {
        for (int apple = 1; apple < 200; apple++) {
            int a1 = minBagAwesome(apple);
            int a2 = minBags(apple);
            if (a1 != a2) {
                System.out.println(apple + " : " + minBags(apple));
            }
            System.out.println(apple +": "+a1 + " = " + a2);
        }
        System.out.println("end...");
        //System.out.println(minBags(100));
    }
}

http://www.kler.cn/news/359535.html

相关文章:

  • Spring-Bean的实例化和依赖注入方式
  • Spring Boot 2.7=>3.0 升级整理
  • 【进阶OpenCV】 (12)--人脸检测识别
  • 基于SpringBoot+Vue的旅游服务平台【提供源码+答辩PPT+参考文档+项目部署】
  • 智能优化算法-生物地理学算法(BBO)(附源码)
  • 学习ROS系列 python语言
  • 起吊机革新:协议转换器解锁安全与效率
  • 提示词高级阶段学习day2.1-在提示词编写中对{}的使用教程
  • Python机器学习中的主成分分析(PCA)全面解析与应用
  • 深度学习 自动求梯度
  • kubernetes(k8s)面试之2024
  • Spring Boot:中小型医院网站开发新趋势
  • react18中如何实现同步的setState来实现所见即所得的效果
  • 【C语言】文件操作(2)(文件缓冲区和随机读取函数)
  • 当物理学奖遇上机器学习:创新融合的里程碑
  • Unity修改鼠标指针大小
  • nginx中的HTTP 负载均衡
  • 【python+Redis】hash修改
  • 真空探针台选型需知
  • Spring Boot:如何实现JAR包的直接运行