以下程序是如何实现递归的
class Test{
static int value=1;
static int f (int n ){
int temp=0;
if(n==0||n==1)
return n;
else{
System.out.println( "n= "+n);
temp=f(n-1)+f(n-2);
if(temp> value){
System.out.println(value+ " ");
value=temp;
}
System.out.println( "temp= "+temp);
return temp;
}
}
public static void main(String[] a){
System.out.println( "0 1 ");
f(7);
}
}
------解决方案--------------------斐波那契数列
temp = f(n - 1) + f(n - 2);
一个数等于前2个数的和
f(n)=f(n - 1) + f(n - 2);
f(n - 1)=f(n - 2)+f(n - 3)
f(n - 2)=f(n - 3);+f(n - 4);
直到n=1
------解决方案--------------------这个输出的规律在于从第三个数开始....每个数都是前两个之和
斐波那契数列在现实中应用还是蛮广的
------解决方案--------------------febbonacci前两项不是应该都是1吗?
1,1,2,3,5,8,13,21
------解决方案-------------------- 0 1
n=7
n=6
n=5
n=4
n=3
n=2
temp= 1
1
temp= 2
n=2
temp= 1
2
temp= 3
n=3
n=2
temp= 1
temp= 2
3
temp= 5
n=4
n=3
n=2
temp= 1
temp= 2
n=2
temp= 1
temp= 3
5
temp= 8
n=5
n=4
n=3
n=2
temp= 1
temp= 2
n=2
temp= 1
temp= 3
n=3
n=2
temp= 1
temp= 2
temp= 5
8
temp= 13
------解决方案--------------------else{
System.out.println( "n= "+n);
temp=f(n-1)+f(n-2);
这个不就是递归吗?就是前2个数的和
if(n==0||n==1)
return n;
前2项在这写的