A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?





正常思路:买了n瓶可乐,得了n个瓶盖;换了n/3瓶可乐,余下n%3个瓶盖;换n/3/3瓶可乐,又余下n/3%3个瓶盖。循环结束条件所有的瓶盖总数<3,且所有的可乐数>=28;做起来有一定的难度




另类思路:3瓶盖=1可乐=1瓶盖+1汽水(其实是汽水加瓶子,但是效果是一样的,只是为了方便书写),
         可以得出:2瓶盖=1汽水;最后剩下的瓶盖数目<3,那么说明,我们相当于是只买了汽水,而把瓶盖有还给了老板;一瓶可乐的价值是1,那么汽水的价值是2/3;也就是说,我们买了28瓶可乐,就是相当于买了28*2/3瓶汽水(此处默认是向下取整,当时是不能够满足我们的需求的),所以我们只需要28*2/3+1就是最后需要买的可乐数目。
总结:搞清楚算法的结束条件,再加上一定的分析,此题如此的简单。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马