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

Java基础
apatche组件的研究和使用
定时执行任务的三种方法
Java各种路径和参数
我看如何选择java和.net
Java关闭窗体的六种方法
java中容易迷惑的知识点
一个简单Thread缓冲池的实现
Java Swing中键盘事件的处理
解读内存优化编程
Java中Set的深入研究
一套JDOM操作XML文件的Base Class
Java堆和栈的区别
Thread类和Runable接口
java 定时执行任务,java定时器
递归(recursion)
java访问各种数据库连接代码
也谈JAVA值传参和引用传参
(转)一个牛人给java初学者的建议
java gui学习
JNI中文处理问题小结

Java基础 中的 递归(recursion)


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