public class RecTest {
static int[] values = new int[3];
static void printArray(int i) {
if (i == 0) return;//当i=0的时候返回,因为此时数组的下标为-1,所以没有输出
else printArray(i - 1);
System.out.println("[" + (i - 1) + "] = " + values[i - 1]);
//当i不等于0的时候i-1,直到i=0,从i等于0,1,2,3开始算,输出数组的值
}
public static void main(String args[]) {
for (int i = 0; i < 3; i++) values[i] = i;
printArray(3);
}
}
public class RecTest {
static int[] values = new int[3];
static void printArray(int i) {
if (i == 0) return;
else printArray(i - 1);
System.out.println("[" + (i - 1) + "] = " + values[i - 1]);
}
public static void main(String args[]) {
for (int i = 0; i < 3; i++) values[i] = i;
printArray(3);
}
}
[0] = 0
[1] = 1
[2] = 2
本人数据结构学的不是太好,求哪为给讲解一下上面递归代码是怎么实现下面的输出结果的,请说明的详细些,谢谢
遇到递归记住2点就行了
1)递归程序有2个出口 一个是退出递归的条件 另一个是继续递归
2)递归调用后会返回调用他的函数
写递归的时候找到退出条件就好写了
看递归的时候画画图 记住返回就行了
自己写写 N! x的y次方 逆序输出字符串 慢慢就能理解了
(x的y次方可以用系统函数 逆序输出字符串可以用循环)
本文通过一个简单的递归示例,详细解析了递归的基本原理及其在Java中的应用。介绍了递归函数的两个关键要素:递归出口和递归调用,并通过图形辅助读者理解递归过程。

被折叠的 条评论
为什么被折叠?



