码迷,mamicode.com
首页 > 其他好文 > 详细

左神中阶班题目二

时间:2020-07-03 21:18:30      阅读:60      评论:0      收藏:0      [点我收藏+]

标签:public   输入输出   如何   根据   int   ret   表示   turn   使用   

题目描述:

  小虎去附近的商店买苹果,奸诈的商贩使用了捆绑交易,值提供6个每袋和8个每袋的包装,

  包装不可再分。可是小虎现在只想购买恰好n个苹果,小虎想购买尽量少的袋数方便携带。

  如果不能购买恰好n个苹果,小虎将不会购买。输入一个整数n,表示小虎想购买的苹果个数

  返回最小使用多少袋子。如果无论如何都不能正好装下,返回-1。

解法一:

  暴力解:先尝试用最多的8袋子装看能不能装满,如果有剩余,看剩下的用6袋子装,能不能装满

      如果还不能,缩减一个8袋子,看剩下的能不能用6号袋子装完。 

public int minBags(int apple){
        int count8 = apple/8;
        while(count8>=0){
            int res = apple - count8 * 8;
            if(res == 0){
                return count8;
            }else{
                int count6 = res / 6;
                int res2 = res - count6 * 6;
                if(res2 == 0){
                    return count8 + count6;
                }else{
                    count8--;
                }
            }
        }
        return -1;
    }

解法二:

  根据输入输出找规律 

左神中阶班题目二

标签:public   输入输出   如何   根据   int   ret   表示   turn   使用   

原文地址:https://www.cnblogs.com/lxy-java/p/13232586.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!