递归

十年热恋 提交于 2019-11-30 22:11:53

递归   基本思想:自己调用自己

递归结构包括两个部分:1.定义递归头 即什么时候不调用自身方法    如果没有头,将进入死循环,也就是递归的结束条件

2.递归体  即什么时候需要调用自身方法

 

练习1:

 /** *          用递归解决下面描述的问题: *          有三种面值的硬币,分别是1分,2分,5分, *          现在给出一个价值,例如价值11,问组成该价值最少需要的硬币数量是多少??? *          11 = 1    10 *          11 = 2    9 *          11 = 5    6 */
public class Coin {
    public static int lessCoin(int i){
        if(i==1||i==2||i==5){  //如果是一角、两角、五角的直接返回一个数量
            return 1;
        }else if(i<5){   //3角和4角都返回2个数量
            return 2;
        }else{
            return  Math.min(1+lessCoin(i-1),Math.min(1+lessCoin(i-2), 1+lessCoin(i-5)));  //若大于5,则应该返回三个中的最小数量
        }
    }

    public static void main(String[] args) {
        System.out.println(lessCoin(12));
        System.out.println(lessCoin(13));
    }
}

 

 

练习2:汉诺塔

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!