Стек-трейс длиной 10 вызовов

  • 3
  • Недоступна
Мне повезло: в младших классах Марья Ивановна вечно писала на доске фразу: «Функция, вызванная последней, должна завершиться самой первой». И заставляла выучить её на память, заверяя, что когда-нибуть поймем. Спасибо, Марья Ивановна, кажется, этот день настал. Я даже могу написать код, чтобы получить стек-трейс длиной 10 вызовов. А вы можете?
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (123)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Вадим9 уровень, Москва
Monday, 21:29
Задачу решил, сделать это не трудно, контролируя значение переменной stackTraceLength выводом на печать.Но сдается мне что "стек-трейс длиной 10 вызовов" из условия задачи, который нам необходимо получить и переменная stackTraceLength - разные вещи. Потому формулировка задания вызывает вопросы.
Maxim Belich14 уровень, Минск
29 May, 17:30
Отсюда:
int stackTraceLength = method1().length - method10().length +1;
Удалите вычитаемое:
method10().length +1
И выведите переменную int на экран. Сделайте это именно через JavaRush. Результат вас удивит)
kupaka12 уровень, Москва
28 May, 03:41
Странная задача. Сидел - думал ... думал в чем задача. Не может же задача заключаться , тупо , в последовательном вызове методов. Оказалась может.
Paul Westvood9 уровень, Минск
20 May, 14:26
Тот случай, когда задача помечена как Easy а ты сидишь пол дня, перекапал пол интернета (потому что тут естественно нихрена не написано толком) и не можешь решить ) Почему так? System.out.println(method1().length) получится 12 System.out.println(method10().length+1) получится 4 System.out.println(method1().length - method10().length + 1) получится 10 12 - 4 = 10!!!
Светлана9 уровень, Санкт-Петербург
20 May, 21:00
А зачем ты вот здесь System.out.println(method1().length - method10().length + 1) прибавляешь единицу? У тебя ж там скобка не стоит, значит сначала вычитание, потом сложение. У тебя получается: System.out.println(method1().length) получится 12 System.out.println(method10().length) получится 3 В итоге 12 - 3 + 1 = 10
Alejandro 200012 уровень, Москва
19 May, 09:34
просто в каждом методе вернул ссылку на следующие методы (до этого вывел на экран значение переменной stackTraceLength для тестов) и с первого теста увидел цифру 10. Перед этим ломал голову, рисовал на листочке стопку методов, пытался понять как работает формула. До сих пор ничего не понял, но задача решена. Это баг. Мне кажется решение задачи должно нести юзернейму просветление))
Paul Westvood9 уровень, Минск
20 May, 14:31
А ты попробуй отдельно вывести System.out.println(method1().length) получится 12 System.out.println(method10().length+1) получится 4 System.out.println(method1().length - method10().length + 1) получится 10 12 - 4 = 10!!! Вот тут я понял что НИХРЕНА не понял 🥴
Insomnia241011 уровень, Кишинев
15 May, 20:25
Судя по комментариям значения ниже должны быть 12 и 3. У меня высвечивает 21 и 12. Может кто обьяснить почему? System.out.println(method1().length); - 21? System.out.println(method10().length); - 12? из методов вызываю следующий метод и так до 10 как по условию.
Insomnia241011 уровень, Кишинев
16 May, 10:44
сам себе и отвечу: https://javarush.ru/help/40744
Владислав9 уровень, Прага
9 May, 18:29
Убил 13 попыток. А все потому-что вызывал первый метод из метода мэйн. ааааа)) Семен Семеныч
Igor Tarasov14 уровень, Свободный, Белебей
24 April, 07:51
3 материи на халяву
Максим Алексеенко16 уровень, Ростов-на-Дону
23 March, 08:53
Кто нибудь объясните где начало и конец стека, и сколько здесь стэков.
Бухтияров Сергей18 уровень, Москва
20 February, 08:58
Решил, но ничего не понял. как лотерею выиграл)))
Валерий Беленко19 уровень, Тольятти
8 March, 14:31
аналогично.
Всеволод9 уровень, Москва
16 April, 19:16
На рисунке, красная линия - это "траектория" по которой движется (исполняется) программа - thread
Alex15 уровень, Минск
22 April, 12:05
очень крутое пояснение, спасибо!