递归

来源:互联网 发布:淘宝怎样卖虚拟物品 编辑:程序博客网 时间:2024/06/03 17:22


递归:

在方法内部调用方法本身
注意:
1、递归调用必须要有出口,否则就会产生死循环递归,内存溢出
2、递归的次数不宜过多,过多容易产生内存溢出
3、构造方法不能递归调用

代码示例:

/* * 需求:用递归求下列数列的第二十项的值: * 1,1,2,4,7,13,24...  * *找出口:出口就是前三项 1 1 2 *找规律:从第四项开始,值是前三项的和 *   *  先确定递归方法返回值类型  int *  确定递归方法的参数类型    int *   *  getName(20)=getName(19)+getName(18)+getName(17) * */public class DiGuiTest {public static void main(String[] args) {System.out.println(getNum(20));}public static int getNum(int count) {if (count == 1 || count == 2) {return 1;} else if (count == 3) {return 2;} else {return getNum(count - 1) + getNum(count - 2) + getNum(count - 3);}}}


递归求阶乘代码示例:

/** * 递归调用 * 输入一个数的阶乘 * 规律:n!=n*(n-1)! * @author zsk * */public class NumDemo {public static void main(String [] args){//创建Scanner对象Scanner input=new Scanner(System.in);int num=input.nextInt();int sum=getSum(num);System.out.println(sum);}//求阶乘函数public static int getSum(int num){if(num==1){return 1;}else{return num*getSum(num-1);}}}



0 0
原创粉丝点击