1.递归实现数的阶乘
public class DiguiTest{
public static void main(String[] args){
Digui digui = new Digui();
System.out.println(digui.f(6));
}
}
class Digui{
public long f(int index){
if(index == 1){
return 1;
}else if(index > 1){
return index*f(index-1);
}else{
System.out.println("您的参数为非法参数!");
return -1;
}
}
}
输出结果:720
2.递归与非递归实现Fibonncci数列
class Fab{
long sum = 0;
long a = 1;
long b = 1;
public long f(int index){//非递归方法
if(index < 1){
System.out.println("您的参数为非法参数!");
return -1;
}
for(int i=0; i<index-2; i++){
sum = a + b;//之所以是index-2就是因为这条语句
a = b;
b = sum;
}
return sum;
}
public long g(int index){//递归方法
if(index == 1 || index == 2){
return 1;
}else if(index > 2){
return g(index-1) + g(index-2);
}else{
System.out.println("非法参数!");
return -1;
}
}
}
public class FabTest{
public static void main(String[] args){
Fab fab = new Fab();
System.out.println(fab.f(40));
System.out.println(fab.g(40));
}
}
输出结果:
102334155
102334155
欢迎光临我师傅小锋哥的网站 Java知识分享网 www.java1234.com 有大量Java资料供学习参考用,一切免费