ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

递归执行机制

2022-02-25 23:32:22  阅读:267  来源: 互联网

标签:return 21 递归 int test 机制 执行 public


 1 public class Recursion01{
 2     public static void main(String [] args){
 3 
 4          Fix can = new Fix();
 5            can.test(5);
 6            /*
 7                n=2,n=3,n=4,n=5
 8            */
 9 
10     }
11 }
12 
13 
14 
15 
16 class Fix{
17     public void  test (int n ){
18         if (n>2) {
19             test(n-1);
20         }
21         System.out.println("n="+n);
22     }
23 }

 递归重要规则:

1.执行一个方法时,就创建一个新的受保护的独立空间(栈空间)

2.方法的局部变量是独立的,不会相互影响,比如N变量

3.如果方法中使用的是引用类型变量(比如:数组),就会共享该引用类型的数据

4.递归必须向退出递归的条件逼近,否则就是无限递归。

5.当一个方法执行完毕,或者遇到return,就会返回,遵守谁调用就将结果返回给谁,同时当方法执行完毕或者返回时,该方法也就执行完毕。

 

 

斐波拉契案列:请使用递归的方法求出斐波拉契数1,1,2,3,5,8,13,21...给你一个整数n,求出它的值是多少?

 1 public class FeiBo{
 2     public static void main(String [] args){
 3      
 4                 Find  can = new Find();
 5                 int n =1;
 6                 int res  = can.test(n);
 7                 if (n!=-1) {
 8                 System.out.println("当n="+n+"时"+"斐波拉契="+res);    
 9                 }
10                 
11     }
12 }
13 
14 
15 
16 class Find{
17     /*
18      案列:请使用递归的方法求出斐波拉契数1,1,2,3,5,8,13,21...
19      给你一个整数n,求出它的值是多少?
20 
21      思路分析:
22      当n=1,菲拉=1
23      n =2,菲拉=1
24      n=3,菲拉=2    n=3是前两个数的和:(n-1)+(n-2)
25      n =4, 菲拉= 3
26 
27      返回类型Int
28      名字test
29      形参类型:int
30      方法体:if判断
31     */
32      
33      public int test(int n){
34          if (n>=1) {
35              if (n==1||n==2) {
36                  return 1;
37              }else {
38                  return test(n-1)+test(n-2);
39              }
40              
41          }
42          System.out.println("输入错误,请输入大于1的整数");
43          return -1;
44      }
45 
46 }

 

标签:return,21,递归,int,test,机制,执行,public
来源: https://www.cnblogs.com/nzm-2019/p/15937921.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有