`
844604778
  • 浏览: 550452 次
文章分类
社区版块
存档分类
最新评论

[互联网面试笔试汇总C/C++-10] 糖果拆包-美团

 
阅读更多

题目:糖果进货时有6个一包,9个一包和140个一包三种包装,问用户一次购买超过多少个糖果可以不拆包装组合出用户需要的数量。


分析:这道题抽象成数学表达式就应该是:6X+9Y+140Z=N,求N的最小值。


在这里我们可以类比:


考虑到任意大于1的整数都能以2X+3Y的形式得出,


所以除3以外,任何3的倍数都可以写成6Y+9Y的形式,


那么在这个题里,140就是用来解决模3余1和模3余2这两种情况的基数。

140模3余2,因此只要大于140且模3余2的,都可以减去140*N,而成为3的倍数,最低为146
280模3余1,因此只要大于280且模3余1的,都可以减去280*N,而成为3的倍数。最低为286


考虑到285为3的倍数,284模3余2,因此只要大于等于284,都可以

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics