【问题标题】:Fibonacci series using recursion in java [closed]在java中使用递归的斐波那契数列[关闭]
【发布时间】:2016-05-05 13:55:04
【问题描述】:

我正在尝试使用递归生成前十个元素的斐波那契数列。但是编译器给出错误。请帮我找到确切的解决方案。

// 程序如下:

public class DemoJava {

    int a=0, b=1, c=0, count=10;

    public void fibonacciRecursion(count) {

        if(count>0){

            c = a+b;
            a = b;
            b = c;
            System.out.println(c);
            fibonacciRecursion(count-1);

        }
    }

    public static void main(String args[]){

        System.out.println("This is a Demo Program.");
        System.out.println(a);
        System.out.println(b);

        DemoJava dj = new DemoJava();
        dj.fibonacciRecursion((count-2));
    }
}

// 错误如下:

error: <identifier> expected
        public void fibonacciRecursion(count) {
                                            ^
1 error

【问题讨论】:

  • 因过于宽泛而投票赞成关闭,请阅读tutorial 以了解该语言的基础知识。

标签: java recursion fibonacci


【解决方案1】:
public void fibonacciRecursion(int count)

您错过了方法签名中的int

其次,

dj.fibonacciRecursion((count-2));

这应该写成:

dj.fibonacciRecursion((dj.count-2));

因为count 是一个实例变量。

【讨论】:

  • 我试过了,但是编译器再次报错 error: non-static variable count cannot be referenced from a static context dj.fibonacciRecursion((count-2));
  • @NathanHughes,感谢您的指出。我的意思是签名。
  • @MohdAqib,请检查编辑后的答案。
  • @MohdAqib 您不能访问主方法中的count 变量,除非它在主方法本身中声明。否则,您能做的最好的事情就是将count 设为静态。
  • @blahfunk,实际上他可以通过他创建的对象访问它。
【解决方案2】:

嗯……

我很确定您必须在方法参数上指定变量类型,如下所示:

public void fibonacciRecursion(int count) {

【讨论】:

    猜你喜欢
    • 2012-02-16
    • 2011-07-27
    • 2013-01-27
    • 2012-11-19
    • 2021-02-17
    • 1970-01-01
    • 2014-03-13
    • 2014-01-08
    • 2016-11-07
    相关资源
    最近更新 更多