用Java递归方法实现Fibonacci类
这是我的代码中与问题解决相关的一部分用Java递归方法实现Fibonacci类,java,recursion,fibonacci,Java,Recursion,Fibonacci,这是我的代码中与问题解决相关的一部分 public long Recursiv(){ Fibonacci fibo = new Fibonacci(this.getNumar()); long fibnum; if(this.getNumar() == 0) return 0; if(this.getNumar() <= 2) return 1; else fibnum = (fibo.Recursiv()-1) + (fibo.R
public long Recursiv(){
Fibonacci fibo = new Fibonacci(this.getNumar());
long fibnum;
if(this.getNumar() == 0) return 0;
if(this.getNumar() <= 2) return 1;
else
fibnum = (fibo.Recursiv()-1) + (fibo.Recursiv()-2);
return fibnum;
}
public long Recursiv(){
Fibonacci fibo=新的Fibonacci(this.getNumar());
长纤维;
if(this.getNumar()==0)返回0;
如果(this.getNumar()您需要一个计算第n个斐波那契数并返回结果的方法,那么您必须告诉它您想要斐波那契序列中的哪个数。
这需要一个参数
public long fib(int n) {
...
}
现在斐波那契数是前面两个斐波那契数的和,也就是
fib(6) = fib(5) + fib(4)
// or more generally
fib(n) = fib(n-1) + fib(n-2)
因此(不必为您编写全部内容),您的方法需要接受并传递必要的参数:
public long fib(int n) {
if (n == 0) return 0;
// etc. -- handle the defined/degenerate cases
return fib(n-1) + fib(n-2)
}
您需要一种计算第n个斐波那契数并返回结果的方法,因此您必须告诉它您想要斐波那契序列中的哪个数。
这需要一个参数
public long fib(int n) {
...
}
现在斐波那契数是前面两个斐波那契数的和,也就是
fib(6) = fib(5) + fib(4)
// or more generally
fib(n) = fib(n-1) + fib(n-2)
因此(不必为您编写全部内容),您的方法需要接受并传递必要的参数:
public long fib(int n) {
if (n == 0) return 0;
// etc. -- handle the defined/degenerate cases
return fib(n-1) + fib(n-2)
}
斐波那契序列的计算可以通过实现以下方法来完成
public long Recursiv(int n)
{
if (0 == n)
return 0;
else if (1 == n)
return 1;
else
return this.Recursiv(n - 1) + this.Recursiv(n - 2)
}
public long Recursiv()
{
if(this.getNumar() == 0)
return 0;
if(this.getNumar() <= 2)
return 1;
else
return new Fibonacci(this.getNumar() - 2).Recursiv()
+ new Fibonacci(this.getNumar() - 1).Recursiv();
}
但是,这需要更改方法的签名
编辑:
显然我有点误解了这个问题;所需的参数在构造函数中给出,该方法应该使用参数较小的实例进行计算
public long Recursiv(int n)
{
if (0 == n)
return 0;
else if (1 == n)
return 1;
else
return this.Recursiv(n - 1) + this.Recursiv(n - 2)
}
public long Recursiv()
{
if(this.getNumar() == 0)
return 0;
if(this.getNumar() <= 2)
return 1;
else
return new Fibonacci(this.getNumar() - 2).Recursiv()
+ new Fibonacci(this.getNumar() - 1).Recursiv();
}
public long Recursiv()
{
if(this.getNumar()==0)
返回0;
如果(this.getNumar()可以通过实现以下方法来计算斐波那契序列
public long Recursiv(int n)
{
if (0 == n)
return 0;
else if (1 == n)
return 1;
else
return this.Recursiv(n - 1) + this.Recursiv(n - 2)
}
public long Recursiv()
{
if(this.getNumar() == 0)
return 0;
if(this.getNumar() <= 2)
return 1;
else
return new Fibonacci(this.getNumar() - 2).Recursiv()
+ new Fibonacci(this.getNumar() - 1).Recursiv();
}
但是,这需要更改方法的签名
编辑:
显然我有点误解了这个问题;所需的参数在构造函数中给出,该方法应该使用参数较小的实例进行计算
public long Recursiv(int n)
{
if (0 == n)
return 0;
else if (1 == n)
return 1;
else
return this.Recursiv(n - 1) + this.Recursiv(n - 2)
}
public long Recursiv()
{
if(this.getNumar() == 0)
return 0;
if(this.getNumar() <= 2)
return 1;
else
return new Fibonacci(this.getNumar() - 2).Recursiv()
+ new Fibonacci(this.getNumar() - 1).Recursiv();
}
public long Recursiv()
{
if(this.getNumar()==0)
返回0;
如果(this.getNumar()在调试器中运行,则命名以小写字母开头的方法并发布完整的代码示例。您认为这是什么:fibo.Recursiv()-1
?在调试器中运行,命名以小写字母开头的方法并发布完整的代码示例。您认为这是什么:fibo.Recursiv()-1
正在做什么?是的,我试图在没有输入的情况下做这件事,我想知道是否还有其他方法。不用担心,这很有趣,所以基本上在返回时它正在创建Fibonnacci类的新实例,对吗?是的,这显然是可行的,但这是一种相当复杂的评估方法。是的,我正在尝试这样做在没有输入的情况下,我想知道是否还有其他方法。不用担心,这很有趣,所以基本上在返回时,它正在创建Fibonnacci类的新实例,对吗?是的,这显然有效,但这是一种相当复杂的评估方法。