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

© blueblueblue 中级黑马   /  2016-9-12 14:32  /  890 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

问题是许多人从小就接触到的:三个空瓶可以换一瓶酒,如果一次买N瓶酒,求一共可以喝到多少瓶酒?
代码如下,求指点:
[mw_shl_code=java,true]public class Test9_bottle {
        public static void main(String[] args) {
                System.out.println(fun1(7));
        }

        public static int fun1(int p) {
                int sum = 0;
                if (p != 0) {
                        sum += p + fun2(p);
                }
                return sum;
        }

        public static int fun2(int g) {
                int count = 0;
                if (g == 2 || g == 3) {
                        count++;
                } else if (g > 3) {
                        count += g / 3 + fun2(g / 3 + g % 3);
                }
                return count;
        }
}[/mw_shl_code]

那么问题来了,反着怎么求?即:如果想喝到M瓶酒,最少需要买几瓶?

0 个回复

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