Всем привет. Подскажите пожалуйста, почему в данном случае у меня происходит слишком долгая проверка? Результат метода decision вроде как всегда правильный выводится, но валидатор не принимает. (Сделал по итогу задачу другим способом, поэтому прикрепить красиво код не могу, извиняюсь :( )
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int one = Integer.valueOf(reader.readLine());
if(one<=0)
throw new NumberFormatException();
int two = Integer.valueOf(reader.readLine());
if(two<=0)
throw new NumberFormatException();
reader.close();
System.out.println(decision(one, two));
}
public static int decision(int a, int b){
while (a!=0 && b!=0){
if(a>b)
a = a%b;
else if(a<b)
b = b%a;
}
return a+b;
}
JTM
17 уровень
Слишком долгая проверка
Архивный
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
JustinianJudge в Mega City OneMaster
1 мая 2020, 13:39решение
Если ты видишь сообшение "слишком долгая проверка" это значит что в твоем коде вечный цикл / зацикливание.
Если при этом у тебя в коде есть цикл while, да еще с нечеткими условиями, значит это оно.
Смотрим на твой код с этими знаниями, видим:
видим условие, и не видим никаких предпосылок к тому, чтобы контроллировался выход с цикла, то есть если к примеру мы введем
1
1
мы получим вечный цикл
while хороший оператор, но нужно быть внимательным с условиями выхода, и быть уверенным что выход обязательно наступит
+3
JTM
1 мая 2020, 18:41
Спасибо большое!
0