递归算法的前提及方法

涐只会轻笑 3个月前 已收到2个回答 举报

兎兎哭暸 3星

共回答了353个问题采纳率:92.7% 评论

递归算法的前提是把一个复杂的问题分解成多个简单的子问题,然后通过递归调用自身来解决这些子问题,最终将它们组合成原问题的解。

递归算法的方法是在递归函数中调用自身,每次调用时传递不同的参数,直到达到终止条件,然后逐级返回结果,最终得到问题的解。在编写递归算法时,需要注意终止条件的设置和递归过程中传递参数的正确性,避免出现死循环或栈溢出等问题。

15小时前

50

回憶的旋律 3星

共回答了352个问题 评论

递归:指在当前方法内调用自己的这种方法

递归的分类

递归分两种,直接递归和间接递归

1.直接递归称为 方法自身调用自己

2.间接递归:可以用A方法调用B方法 ,B方法调用C方法 C方法调用A方法

注意事项:

递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出

在递归中虽然有限定条件,但是递归次数不能太多,否则也会发生栈内存溢出

构造方法,禁止递归

public class Demo01 {

public static void main(String[] args) {

//a();

b(1);

}

//构造方法,禁止递归 编译报错:构造方法是创建对象使用的,一直递归会导致内存中有无数多个对象,直接编译报错

public Demo01() {

//Demo01(); //编译报错

}

//在递归中虽然有限定条件,但是递归次数不能太多,否则也会发生栈内存溢出 6151 溢出异常

private static void b(int i) {

System.out.println(i);

if (i==10000) {

return;//结束方法

}

b(++i);

}

/*

*

1.递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出

* */

private static void a() {

System.out.println("a方法");

a();

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27递归的使用前提:当调用方法的时候,方法的主体不变。每次调用方法的参数不同,可以使用递归递归练习1计算1-n之间的和1+2+3+…+n可以看成n+(n-1)+(n-2)+.....+1已知最大值为n 最小值:1使用递归的前提1.递归的结束条件 获取到1的时候结束2.递归的目的: 获取下一个被加的数字(n-1)public static int sum(int n) {

13小时前

21
可能相似的问题

热门问题推荐

Copyright © 2024 微短问答 All rights reserved. 粤ICP备2021119249号 站务邮箱 service@wdace.com