java遞歸例子

package com.hy.object;

/**
 * 遞歸的要求就是要有方向,不能約遞歸越大
 */
public class RecusionTest {
    public static void main(String args[]){
        RecusionTest test = new RecusionTest();
        int sum = test.getSum(5);
        System.out.println(sum);
    }

    // 舉例:求100以內自然數的和
    public int getSum(int number){
        if(number ==1){
            return number;
        }else{
            return number+getSum(number-1);
        }
    }

    // 舉例:求n!  n*(n-1)!
    public int getResult(int number){
        if(number==1){
            return 1;
        }else{
            return number + getSum(number-1);
        }
    }

    // 舉例: 已知一個數列:f(0) =1,f(1) = 4; f(n+2) =2*f(n+1) =f(n),n大於零,求發(10)的值
    public  int func(int n){
        if(n==0){
            return 1;
        }else if(n==1){
            return 4;
        }else{
            return 2 * func(n-1)+func(n-2);
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章