Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Java递归方法实现Fibonacci类_Java_Recursion_Fibonacci - Fatal编程技术网

用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类的新实例,对吗?是的,这显然有效,但这是一种相当复杂的评估方法。