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

Java基础
EL 表达式的默认变量
浅谈Java中图片的处理
JDBC工作原理,结构,访问数据库
浅谈static那些事
Jakarta-Common-BeanUtils研究心得
Java中实现排序的那些方法
批量处理JDBC语句提高处理速度
JDBC中参数的输入与输出
Java基础:JavaScript与Java区别
浅谈Java编程基础面试题
Java代码构建一个线程池
Java加密和数字签名编程(1)
Java加密和数字签名编程(2)
七道Java基础面试题,帮你面试成功
浅谈Java 多线程实践
Java中对文件的读写操作之比较
浅谈Java Bean与EJB的那些区别
浅谈制作多个线程
浅谈Daemon线程
浅谈Socket套接字中Socket类

Java基础 中的 递归(recursion)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 176 ::
收藏到网摘: 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;
  }
}