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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package cn.itcast.喝可乐问题;
public class cocaCola{

        /**
         * 10、28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?(需写出分析思路)
* 分析:可乐数量        人数                        可乐数量        人数
                 *1                1                         *2                2
                 *3                3                
                 *3                4                         *4                5
                 *5                6               
                 *5                7                         *6                8
                 *7                9                                       
                 *7                10                         *8                11
                 *9                12                               
                 *9                13                         *10        14
                 *11        15
                 *11        16                         *12        17
                 *13        18
                 *13        19                         *14        20
                 *15        21
                 *15        22           *16        23
                 *17        24
                 *17        25                         *18        26
                 *19        27
                 *19        28
                当人数/3的余数是2的时候,需要的可乐数量是一个2为第一个元素公差为2的一个等差数列.需要买的可乐的数量就是一个第一个元素为2,公差为2的一个等差数列,所以得出结论:人数/3的余数为2,需要的可乐数量就是(人数/3 +1)*2
                当人数/3的余数是0或者1的时候,需要的可乐数量是第一个元素为1,公差为2的一个等差数列,因此可以得出需要的可乐数量就是(人数/3 +1)*2-1;排除0人的情况
         */
        public static void main(String[] args) {
                int count = getCount(28);
                System.out.println("28个人需要买" + count + "瓶可乐");
                int total = getCount(50);
                System.out.println("50个人需要买" + total + "瓶可乐");
        }

        private static int getCount(int i) {
                int count = 0;
                if (i == 0) {
                        return count;
                } else if (i % 3 == 2) {
                        count = (i / 3 + 1) * 2;
                } else {
                        count = (i / 3 + 1) * 2 - 1;
                }
                return count;
        }

}

1 个回复

倒序浏览
沙发,谢谢楼主分享。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马