读书人

以下程序是怎么实现递归的

发布时间: 2011-12-07 22:35:48 作者: rapoo

以下程序是如何实现递归的
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项在这写的

读书人网 >J2SE开发

热点推荐