java递归算法的简单示例

                                                                              java递归算法的简单示例

今天参加笔试,要求用递归实现1+3+5+7……

没写出来,蛋疼。。。。下面复习一下,自己尝试着写还是没有写出来。。。。。

没有写出来的关键是自己不知道该如何实现求和、实现出口

递归实现的关键是:

1.出口的设计

2.递推的向出口逼近

下面是代码:

 public class Recursion {
       public static int f(int n){
                     if(n==1){
                          return 1;
                    }
                    return n+f(n-2);
        }
      public static int main (String[] args){
            System.out.println(f(7));
        }
     }

上段代码比较重要的是:

  if(n==1){ return 1;} —这段代码设计了程序递归的出口,当n == 1时,进入if条件,通过return关键字的作用结束整个程序的运行,从而达到作为程序出口的目的。这里是个难点。此处的if(n==0)可以修改为if(n < 0),因为同样可以结束程序的运行。

 实现的第二个重要部分是:return n + f(n-2)  这里不仅实现了向出口的逼近而且还实现了功能。

所以,对于此处的思维逻辑要求比较高,在实现上面的代码,可能下面实现的阶乘就比较好理解了:

public class Test{
      public static void main(String [] args){
           
           System.out.println(f(5));
    }
   public static int f(int n){
      if(n == 1){
         return 1;  
     }
     return n*f(n - 1);
   }
 }

    原文作者:递归算法
    原文地址: https://blog.csdn.net/u013793732/article/details/50856829
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞