2015-02-17 4 views
0

Как получить этот результат?

import java.util.Scanner; 
 
public class EuclidGCD { 
 

 
\t public static void main(String[] args) { 
 
\t \t Scanner kbd = new Scanner (System.in); 
 
\t \t System.out.print ("Enter First Number: "); 
 
\t \t int n1 = kbd.nextInt(); 
 
\t \t System.out.print ("Enter Second Number: "); 
 
\t \t int n2 = kbd.nextInt(); 
 
\t \t int gcd = 1; 
 
\t \t int k = 2; 
 
\t \t while (k <= n1 && k <= n2){ 
 
\t \t \t if (n1 % k == 0 && n2 % k == 0) 
 
\t \t \t gcd = k ; 
 
\t \t k ++; 
 
\t \t } 
 
\t \t System.out.println("The GCD of " + n1 + " and " + n2 + " is " + gcd); 
 

 
\t } 
 

 
}
так все работает, но я понял, что я не хочу несколько нег, если отрицательное число вводится я хочу выходные ПОЛОЖИТЕЛЬНЫЕ ЧИСЛА ТОЛЬКО так что мне нужно другое время цикл?

+0

Я бы предложил просто получить абсолютное значение 'n1' и' n2', прежде чем вы будете учитывать GCD. – ssube

ответ

0

Просто добавьте оператор if, проверяющий, являются ли n1 и n2 положительными, и только вычитал остальную часть вашего кода, если они есть. Вам не нужен другой цикл while

public static void main(String[] args) { 
     Scanner kbd = new Scanner (System.in); 
     System.out.print ("Enter First Number: "); 
     int n1 = kbd.nextInt(); 
     System.out.print ("Enter Second Number: "); 
     int n2 = kbd.nextInt(); 
     if(n1 < 0 || n2 < 0){ 
      System.out.println("POSITIVE NUMBERS ONLY "); 

     }else{ 
      int gcd = 1; 
      int k = 2; 
      while (k <= n1 && k <= n2){ 
       if (n1 % k == 0 && n2 % k == 0) 
       gcd = k ; 
      k ++; 
      } 
      System.out.println("The GCD of " + n1 + " and " + n2 + " is " + gcd); 
     } 
    } 
+0

так после того, как я объявил n2? –

+0

вызывают некоторое время (n1 <0 && n2 <0) { \t \t \t System.out.print (ТОЛЬКО ПОЗИТИВНЫЕ НОМЕРА); после int2 и GCD -5 и 15 возвращаются как 1, когда он должен быть ТОЛЬКО ПОЛОЖИТЕЛЬНЫМ ЧИСЛАМ –

+0

. Я просто хочу ввести два числа, а затем вывести порядковые номера, только если используется отрицательное число –

Смежные вопросы