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

Java基础
java基础:小编浅谈java对象
Java基础:孙鑫谈Java中文乱码问题产生原因分析(一)
Java基础:孙鑫谈Java中文乱码问题产生原因分析(二)
Java基础:小编谈JDBC
Java基础:小编详谈Java编码规则并不是老生常谈
Java基础:小编详谈AOP概念
Java基础:小编谈java多维数组
Java基础:小编谈Javascript之DOM的使用(25条)
Java基础:小编杂谈动态语言
Java基础:程序员之家七月份Java基础总结
Java基础:XHTML中css+div布局(经典8条)
Java基础:小编浅谈Spring基于三大模板的Web表示层技术
Java基础:浅谈多线程那点事
Javai基础:浅谈封装的那些事
Java基础:小编浅谈JavaScript中自定义函数那些事
Java基础:小编谈JavaScript中使用原型来创建对象
Java基础:CSS那些事
Java基础:小编对JavaScript的一些认识
Java基础:小编浅谈JavaScript与Java区别何在
Java基础:小编谈继承的语法

Java基础 中的 递归(recursion)


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