2013-04-18 3 views
-3

나는이 오류에 대한 해결책을 찾지 못하는 것 같습니다. 저를 판단하지 마십시오. 여기 초심자.유클리드 알고리즘 GCD,

import java.util.Scanner; 
public class GreatestCommonDivisor { 

    public static void main(String[] args) { 
     Scanner kbd = new Scanner(System.in); 
     int num1; 
     int num2; 
     int gcd; 
     boolean again = false; 

     do { 
      System.out.print("First positive integer: "); 
      num1 = inputPosInt(); 

     System.out.print("Second positive integer: ");   
      num2 = inputPosInt(); 
      //.... 
      gcd = gcd(); 
      (again) = tryAgain(); 
     } while (again); { 
       System.out.println("Thank you for testing this program."); 
     } 

    } 

    public static int inputPosInt() { 
     Scanner kbd = new Scanner(System.in); 
     int num; 

     num = kbd.nextInt(); 

     if (num < 0) { 
      System.out.println("Entered integer value is non-positive."); 
      return 0; 
     } 
     return num; 

    } 

    public static int gcd(int num1, int num2) { 


    if (num2==0) { 
     return num1; 
      } 
    return gcd(num2,num1%num2); 
} 


    public static boolean tryAgain() { 
     Scanner kbd = new Scanner(System.in); 
     System.out.print("Would you like to try again? [Y/N]"); 
     char again; 
     again = kbd.nextLine().charAt(0); 
     if (again == 'y' || again == 'Y') { 
      return true; 
     } 

     else if (again == 'n' || again == 'N') { 
      System.exit(0); 
     } 

     return false; 
    } 

} 

이 프로그램은 양의 정수 입력을 필요로하며 유클리드 알고리즘을 사용하여 GCD를 해결합니다.

오류 : gcd = gcd(); ^ 필요 : 인수 이유 : INT 발견 을 int로 실제와 형식 인수 목록 길이 1 오류

+0

당신은 2 개의 int를 요구하는 함수를 선언했고, 그것을 none으로 호출했습니다. – Randy

+3

메시지의 어떤 부분을 이해하지 못합니까? – SLaks

답변

4

당신이 gcd 함수를 호출에 차이가, 당신은 인수로 두 정수를 전달해야합니다. 당신은 당신이 필요로하는 매개 변수를 전달하지 않는 gcd = gcd();이있을 때

gcd = gcd(num1, num2); 
+0

. 이제 이해가된다. 감사. :) –

0

:. 귀하의 경우에는 두 정수 아마 당신이 읽은 두 그래서, 아마 같이해야 할 것이다. 메서드 정의는 public static int gcd(int num1, int num2)이며, 두 개의 int가 필요합니다.

호출 예는 gcd = gcd(54, 24)입니다. 귀하의 경우 아마도 gcd = gcd(num1, num2)을 원할 것입니다.

0

gcd(int, int) 메서드를 호출하지만 어떤 인수도 gcd()에 전달하지 않았습니다.

작성된대로 gcd(int, int) 메소드에는 입력으로 두 개의 정수가 필요합니다.

관련 문제