递归

递归:是一种编程手法,函数自身直接或间接调用了自身

public class FileRecursion {
    public static void main(String[] args) {
    }
    public static void show(){
        //show();//直接调用自身
        Method();
    }
    public static void Method() {
        show();//间接调用自身 
    }
}

注意:
  1.递归一定要明确条件,否则容易栈溢出(StackOverflowError),只进不出
  2.递归的次数

什么时候用递归:一个功能在被重复只用,并每次使用时,参与运算的结果和上一次调用有关,这时可以用递归来解决问题

public class FileRecursion {
    public static void main(String[] args) {
        toBin(6);
    }
    public static void toBin(int num){
        if(num>0){
            System.out.println(num%2);//将该句放到toBin方法下面结果的顺序会翻过来,因为栈中最上层的先出栈,所以结果会反过来变成110
            toBin(num/2);
            
        }
    }
}

 

public class FileRecursion {
    public static void main(String[] args) {
        System.out.println(getSum(5));
    }
    public static int getSum(int num){    
        int x = 9;
        if(num==1)
            return 1;
        
        return num+getSum(num-1);
    }
}

 

posted @ 2014-03-11 21:54  胡椒粉hjf  阅读(138)  评论(0编辑  收藏  举报