java编程 已知f(n)=f(n-1)+f(n-2), f(0)=a,f(1)=b,已知a,n,f(n),求b
发布网友
发布时间:2024-10-03 07:41
我来回答
共3个回答
热心网友
时间:2024-10-07 16:07
public int fibo(int m,int a,int b){
if(m == 0) return a;
if(m == 1) return b;
if(m > 1) return fibo(m - 1)+fibo(n - 2);
return 0;
}
以上就是给出a,b和n的值,求f(n),这也是递归的一个案例,如果a、b明确,可直接替换掉函数中的a、b值,而只留一个参数m即可。
热心网友
时间:2024-10-07 16:08
int f(int a,int n,int fn){
if (n < 1)
return 0;
int i = 1; //f(i) = f(1)
int j0 = 1; //f(i-1) = j0*a+j1*b = f(0)
int j1 = 0;
int k0 = 0; //f(i) = k0*a+k1*b = f(1)
int k1 = 1;
while(i<=n){
if(i == n)
return (fn-k0*a)/k1;
int t0 = j0;
int t1 = j1;
j0 = k0;
j1 = k1;
k0 += t0;
k1 += t1;
i++;
}
}
应该这个样子吧,没运行过,你看我注释去理解试试运行。可以就说一下,有问题大家再研究
热心网友
时间:2024-10-07 16:11
function b=fi(n)
if n<=0
b=-1;
else
fi(1)=1;
fi(2)=2;
for i=3:n
fi(i)=fi(i-1)+fi(i-2);
end
b=fi(n);
end