当前位置: 首页 > 图文教程 > Java技术 > Java基础 > 递归(recursion)

Java基础
Struts+Hibernate数据表示
JSP+MYSQL+Java类优化分页
利用JBuilder 2005 开发Spring
Java程序与C语言的接口
10分钟Hibernate体验
Tomcat配置技巧Top 10
JDBC+Hibernate将Blob数据写入Oracle
Java使用全屏幕模式
Java基础:小编浅谈C#与java的属性区别
Java基础:小编浅谈C#和Java的相似之处
Java基础:小编浅谈C#与java的事件区别
Java基础:小编浅谈C#与java的对象索引机制、指代的区别
Java基础:小编谈Java中获取系统属性
Java基础:浅谈Java Bean与EJB的那些区别
Java基础:Java中对文件读写操作概述
Java基础:Java中安全问题
Java基础:浅谈面向对象应用中的持续性
Java中多线程的实现
多线程使用中的问题
MIME详解

Java基础 中的 递归(recursion)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 184 ::
收藏到网摘: n/a

递归求阶乘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 1;
    }else{
      return fibonacci(n-1) fibonacci(n-2);
    }
  }
  //非递归求fibonacci的值(迭代)
  public static int noRecursionFibonacci(int n){
    if(n==1||n==2){
      return 1;
    }
    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;
  }
}