public class Recursive{
public static void main(String[] args){
System.out.println(recursive1(5));
System.out.println(recursive2(5));
System.out.println(recursive3(5));
}
//使用递归调用方法,求n!
public static int recursive1(int n){
if (n==1)
return 1;
else
return n*recursive1(n-1);
}
//使用递归调用方法求Fibonacci数列:1,1,2,3,5,8,……第三个数总是前两个数的和
public static int recursive2(int n){
if (n==1||n==2)
return 1;
else
return recursive2(n-1)+recursive2(n-2);
}
//不使用递归方法求Fibonacci数列。
public static long recursive3(int n){
if(n==1||n==2){
return 1;
}
long f1=1L;
long f2=1L;
long f=0;
for(int i=0;i<n-2;i++){
f=f1+f2;
f1=f2;
f2=f;
}
return f;
}
}
public static void main(String[] args){
System.out.println(recursive1(5));
System.out.println(recursive2(5));
System.out.println(recursive3(5));
}
//使用递归调用方法,求n!
public static int recursive1(int n){
if (n==1)
return 1;
else
return n*recursive1(n-1);
}
//使用递归调用方法求Fibonacci数列:1,1,2,3,5,8,……第三个数总是前两个数的和
public static int recursive2(int n){
if (n==1||n==2)
return 1;
else
return recursive2(n-1)+recursive2(n-2);
}
//不使用递归方法求Fibonacci数列。
public static long recursive3(int n){
if(n==1||n==2){
return 1;
}
long f1=1L;
long f2=1L;
long f=0;
for(int i=0;i<n-2;i++){
f=f1+f2;
f1=f2;
f2=f;
}
return f;
}
}