我是Java /编程的新手 我必须写一个递归方法来找到两个数字的最大公约数。它说我在调用方法时找不到符号。
import java.util.Scanner;
public class tester121{
public static void main(String[]args){
Scanner input= new Scanner(System.in);
System.out.println("Enter first number");
int num1=input.nextInt();
System.out.println("Enter second number");
int num2=input.nextInt();
System.out.println("The Greatest common factor of "+num1+" "+num2+" is "+GCD(num1,num2));
}
}
我的方法如下。当我尝试编译这个时,我得到这个GCD.java:4:错误:类,接口或枚举预期
public class GCD{
public static int GCD(int num1, int num2){
if(num2==0){
return num1;
}
return(GCD(num2, num1%num2));
}
}
谢谢!
答案 0 :(得分:1)
GCD
是GCD
中的方法,而不是当前类中的方法,因此您需要
System.out.println("The Greatest common factor of " + num1 + " " + num2
+ " is " + GCD.GCD(num1, num2));
GCD
类本身需要在一个单独的文件中才能声明public
请注意,Java中的约定方法名称以lowercase letter开头,例如gcd
答案 1 :(得分:1)
有两种方法来修复您的代码并获得您想要的内容:
1)一个类中的所有东西(称为tester121.java)
import java.util.Scanner;
public class tester121{
public static void main(String[]args){
Scanner input= new Scanner(System.in);
System.out.println("Enter first number");
int num1=input.nextInt();
System.out.println("Enter second number");
int num2=input.nextInt();
System.out.println("The Greatest common factor of "+num1+" "+num2+" is "+GCD(num1,num2));
}
public static int GCD(int num1, int num2){
if(num2==0){
return num1;
}
return(GCD(num2, num1%num2));
}
}
将此代码放入名为tester121.java
的文件中,然后您应该编译。
2)两个单独的类中的所有内容: 头等舱: (将此另存为GCD.java)
public class GCD{
public static int GCD(int num1, int num2){
if(num2==0){
return num1;
}
return(GCD(num2, num1%num2));
}
}
第二课(将其保存为tester121.java)
import java.util.Scanner;
public class tester121{
public static void main(String[]args){
Scanner input= new Scanner(System.in);
System.out.println("Enter first number");
int num1=input.nextInt();
System.out.println("Enter second number");
int num2=input.nextInt();
System.out.println("The Greatest common factor of "+num1+" "+num2+" is "+GCD.GCD(num1,num2));
}
}
在第二种情况下,您需要调用GCD.GCD(num1,num2))
,因为该方法被声明为静态
答案 2 :(得分:0)
您的计划中存在多个错误。第一个GCD是一个类,而不是一个方法,所以在你的主要,
System.out.println("The Greatest common factor of "+num1+" "+num2+" is "+GCD(num1,num2));
这是试图打电话给"班级"并尝试用一些参数来提供它,这是错误的。由于GCD方法是一个静态方法,你可以做GCD.GCD(...,...)但是大多数时候应该为构造函数方法保留与类名相同的方法名,所以你想要找到一个不同的名字对于那个方法