【解決方法】というエラーを取り除くにはどうすればよいですか "シンボルを見つけることができません"?


import java.util.*;
class Recursion {
    public static int fib(int n)
    {
        if (n <= 1)
            return n;
        return fib(n - 1) + fib(n - 2);
    }
    public static String reverse(String s)
    {
        if ((s==null)||(s.length() <= 1)){
           return s;
    }
    return reverse(s.substring(1)) + s.charAt(0);
    }
    public static boolean isPalindrome (String s)
    {
        if(s.length()==0 || s.length()==1)
            return true;
        
        if(s.charAt(0)==s.charAt(s.length()-1))
        return isPalindrome(s.substring(1,s.length()-1));
        return false;
    }
}
public class Main
{
	public static void main(String[] args) {
	    Scanner sc = new Scanner(System.in);
	    System.out.println("Enter a value for n: ")
	    int n = sc.nextInt();
	    System.out.println("The n^th Fibonacci number is: ");
	    System.out.println(fib(n));
	}
}

What I have tried:

I'm not sure what's wrong but when I try to run my code it says Main.java:30: error: cannot find symbol
	    System.out.println(fib(n));
	                       ^
  symbol:   method fib(int)
  location: class Main
1 error
I'm a little confused as to why the variable isn't found although my method is declared. Please help!

解決策 1

モジュールには 2 つの別個のクラスがあります。 Recursion、 を含む fib、 と Main を含む main 方法。 次に、電話をかけようとします fib のメンバーであるかのように Main クラスではありません。 の静的メソッドです。 Recursion クラス。 したがって、あなたの呼び出しを変更する必要があります main 方法:

Java
System.out.println(Recursion.fib(n));

同じことをする必要があります reverseisPalindrome.

コメント

タイトルとURLをコピーしました