您的位置:首页 > 其它

斐波那契数列与阶乘---递归实现

2015-05-27 14:58 369 查看
package com.demo.hello;

public class HelloWorld {

//斐波那契数列--递归实现
public  static int fibonacci(int index){
if(index<0){
System.out.println("----------参数不能为负数--------");
return -1;
}
if(index==0){
return 0;
}else if (index==1) {
return 1;
}else {
return fibonacci(index-1)+fibonacci(index-2);//index>=2
}
}

//n的阶乘--递归实现
public static int factorial(int n){
if(n<0){
System.out.println("----------参数不能为负数--------");
return -1;
}
if(n==0 || n==1){//0!=1 ,1!=1
return 1;
}else  {// n!=n*(n-1)!;
return n*factorial(n-1);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub

System.out.println(fibonacci(5));
System.out.println(factorial(5));
}

}


运行结果:

5
120


注意:

定义递归方法时有一条最重要的规定:递归一定要向已知方向递归。

只要一个方法的方法体实现中再次调用了该方法本身,就是递归方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: