天天看點

遞歸(recursion)

遞歸求階乘n!:

public class Factorial { 

  public static void main(String[] args){ 

    System.out.println(factorial(9)); 

  } 

  //遞歸求階乘n! 

  public static int factorial(int n){ 

    if(n==1||n==0){ 

      return 1; 

    }else{ 

      return n*factorial(n-1); 

    } 

遞歸求Fibonacci數列:1,1,2,3,5,8...第9個數的值。數列滿足遞推公式:

    f(1)=1,f(2)=1     f(n)=f(n-1)+f(n-2)(n>2)

public class Fibonacci { 

  public static void main(String[] args) { 

    System.out.println(fibonacci(9)); 

    System.out.println(noRecursionFibonacci(9)); 

  //遞歸求fibonacci的值 

  public static int fibonacci(int n){ 

    if(n==1||n==2){ 

      return fibonacci(n-1)+fibonacci(n-2); 

  //非遞歸求fibonacci的值(疊代) 

  public static int noRecursionFibonacci(int n){ 

    int f1 = 1; 

    int f2 = 1; 

    int f3 = 1; 

    for(int i=0;i<n-2;i++){ 

      f3 = f2+f1; 

      f1=f2; 

      f2=f3; 

    return f3; 

本文轉自 yzzh9 51CTO部落格,原文連結:http://blog.51cto.com/java999/168085,如需轉載請自行聯系原作者

繼續閱讀