3 回答

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊
假設(shè)你的遞歸方法只是從 開始倒數(shù)n。
static void countDown(int n) {
if (n <= 0)
return;
countDown(n - 1);
}
要按遞歸順序打印,請?jiān)谶f歸調(diào)用之前插入打印語句:
static void countDown(int n) {
if (n <= 0)
return;
System.out.println(n);
countDown(n - 1);
}
輸出
5
4
3
2
1
看,從 5 開始倒數(shù)。
要反向打印,請?jiān)谶f歸調(diào)用后插入打印語句:
static void countDown(int n) {
if (n <= 0)
return;
countDown(n - 1);
System.out.println(n);
}
輸出
1
2
3
4
5
看,向上計(jì)數(shù),即向下計(jì)數(shù)的相反過程。

TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊
為了理解遞歸,首先必須理解遞歸。
首先要真正理解遞歸,它應(yīng)該不難。遞歸方法的用例相反:簡化問題。
遞歸解決的經(jīng)典問題有素因數(shù)分解、階乘、漢諾塔等。與CS比較相關(guān)的可以是數(shù)據(jù)結(jié)構(gòu)搜索/排序算法。

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個(gè)贊
簡單的。只需顛倒 print 語句和遞歸調(diào)用的順序即可printTriangle():
public static void printTriangle(int sideLength, String trianglePattern)
{
if (sideLength < 1){return;}
for (int i = 0; i < sideLength; i++)
{
System.out.print(trianglePattern);
}
System.out.println();
printTriangle(sideLength - 1, trianglePattern);
}
在 Java 中測試:
添加回答
舉報(bào)