java递归算法的简单示例

来源:互联网 发布:淘宝摄影师接单平台 编辑:程序博客网 时间:2024/05/06 19:40

                                                                              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);   } }


0 0