黑马程序员技术交流社区

标题: 递归的妙用 [打印本页]

作者: 执剑人    时间: 2016-3-6 10:20
标题: 递归的妙用
学了递归,我觉得这是个神器,当我们传入的值会产生返回值和新的传入值的时候可以用递归。
28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?(需写出分析思路)
public static void main(String[] args) {
                int num = 25;
                int i = 0;
                while(getp(i) + i < num){    //c语言老师说这叫穷举法
                        i++;
                }
                System.out.println(i);
        }

        public static int getp(int i){                 //传入的是瓶盖值,返回的是可乐的值,
                if(i > 3){
                        
                        return  i/3 + getp(i / 3  + i % 3);        //把产生的瓶盖传回!递归!
                }else{
                        return 0;
                }
        }
作者: qq812392675    时间: 2016-3-6 15:22
赞一下但是递归的河内塔真是个坑{:2_33:}
作者: 执剑人    时间: 2016-3-7 09:05
qq812392675 发表于 2016-3-6 15:22
赞一下但是递归的河内塔真是个坑

什么是河内塔?
作者: 小笼包    时间: 2016-3-7 09:23
递归的用处太大了
作者: qq812392675    时间: 2016-3-7 10:23
执剑人 发表于 2016-3-7 09:05
什么是河内塔?

就是三根柱子
有环环从一号柱移动到三号柱的
汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。[1]
作者: 执剑人    时间: 2016-3-7 10:27
小笼包 发表于 2016-3-7 09:23
递归的用处太大了

同意!赞一下!
作者: 超人d咖啡也加糖    时间: 2016-3-7 11:53
学习了!
作者: sl943508135    时间: 2016-3-7 12:20
学习了   




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2