Java簡單遞歸算法(兩種例子)


例子一:
程序結束口:表達式(n==-1)為true,代表n(100)被遞減完了,已經不能被遞減了,
如不是-1,則代表還有數值可以被遞減,此題及計算結果為偶數總和,遞減時應當判斷 當前n是否為偶數
如果是偶數,則 sum(偶數總和) = n(當前數值)+ 調用此方法(n(當前數值)-1(每次遞減1))
如果不是偶數,則不需要添加到sum 里面,直接再次調用自己本身方法,n-1,進入下一輪

/**
 * 計算1-100以內偶數的總和
 * n為要計算的數值(100)
 * sum為總和
 */
public static int evenSum(int n) {
    int sum = 0;
    if (n == -1) {
        return sum;
    } else {
        if (n % 2 == 0) {
            return sum =n+evenSum(n - 1);
        } else {
            return evenSum(n - 1);
        }
    }

}

/**
 * 計算1-100以內的和
 * n為要計算的數值(100)
 * sum為總和
 */
public static int totalSum(int n){
    int sum=0;
    if (n==-1){
        return sum;
    }else {
        return sum=+n+totalSum(n-1);
    }
}

public static void main(String[] args) {
    //計算1-100以內偶數的和
    System.out.println(totalSum(100));
    //計算1-100以內的和
    System.out.println(evenSum(100));
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM