Java語言中,遞歸是十分常見的一種算法。今天我們要來練習(xí)一下使用遞歸來找出和為100的第n個數(shù)。
public static int findNumber(int n){ if(n == 1) return 1; else{ int sum = 0; for(int i=1;i<=n;i++){ sum += findNumber(n-i); if(sum >= 100) break; } return sum; } }
在這段代碼中,我們定義了一個函數(shù)findNumber,它接收一個整型參數(shù)n。如果n為1,說明這是第一個數(shù),直接返回1。否則,我們需要用一個循環(huán)來累加前面的數(shù)來計算出當(dāng)前數(shù)。循環(huán)中,我們將n-i傳入遞歸,將這個數(shù)加到sum中,然后判斷sum是否已經(jīng)大于等于100。如果是,就跳出循環(huán)返回sum。
在主函數(shù)中,我們可以測試這個函數(shù),例如,我們要找出和為100的第10個數(shù):
public static void main(String[] args){ int n = findNumber(10); System.out.println(n); // 輸出95 }
這個程序會輸出95,說明和為100的第10個數(shù)是95。
總之,遞歸是一種十分有用的算法,用來解決很多問題。使用遞歸來找出和為100的第n個數(shù),可以幫助我們更好地理解遞歸的原理和用法。