it Задачи 5 логических задач, которые дают junior-разработчикам
5 логических задач, которые дают junior-разработчикам

5 логических задач, которые дают junior-разработчикам

165
30 мая 2026 в 11:45

Перед тобой 5 логических задач, которые часто дают junior-разработчикам на собеседованиях. Некоторые выглядят простыми, но могут легко запутать.

На собеседованиях программистов часто проверяют не только знание языка программирования, но и умение логически мыслить. Особенно это касается junior-разработчиков.


Многие компании специально задают простые на первый взгляд задачи, чтобы посмотреть, как человек рассуждает, умеет ли замечать детали и искать решение.


Задача №1 — Что выведет код?

numbers = [1, 2, 3]
copy = numbers

copy.append(4)

print(numbers)


Вопрос: что появится в консоли?


Решение

В консоли появится:


[1, 2, 3, 4]


Переменная copy не создала новый список. Она просто получила ссылку на тот же объект в памяти.


Поэтому изменение через copy изменило и numbers.


Задача №2 — Сколько раз выполнится цикл?

for(let i = 0; i < 5; i--) {
	console.log(i);
}


Вопрос: сколько раз выполнится цикл?


Решение

Цикл никогда не остановится.


Переменная i начинается с 0, а условие:


i < 5


всегда остаётся истинным, потому что i уменьшается:


0, -1, -2, -3...


Это классический пример невнимательности на собеседованиях.


Задача №3 — Почему функция возвращает false?

console.log([] == false);


Вопрос: почему результатом будет true?


Решение

JavaScript пытается привести значения к одному типу.


Пустой массив преобразуется в пустую строку:


"" == false


После этого оба значения приводятся к числу:


0 == 0


И результатом становится true.


Именно поэтому в JavaScript обычно рекомендуют использовать строгое сравнение:


=== 


Задача №4 — Найди ошибку в условии

age = 20

if age >= 18 or age <= 60:
	print("Доступ разрешён")


Вопрос: в чём проблема условия?


Решение

Условие написано неправильно, потому что оператор or делает его почти всегда истинным.


Например:


Если age = 10:


10 <= 60


Уже true.


Если age = 100:


100 >= 18


Тоже true.


Правильнее было бы использовать:


if age >= 18 and age <= 60:


Задача №5 — Логическая задача

У тебя есть 8 одинаковых с виду шариков. Один из них тяжелее остальных.


У тебя есть весы без гирь.


Вопрос: как найти тяжёлый шарик всего за 2 взвешивания?


Решение

Разделим шарики на 3 группы:


3 + 3 + 2


Первое взвешивание:

  • Сравниваем группы по 3 шарика.
  • Если одна сторона тяжелее — тяжёлый шарик находится там.
  • Если вес одинаковый — тяжёлый шарик в оставшейся группе из 2 шаров.


Второе взвешивание:

  • Берём подозрительную группу и сравниваем два шарика между собой.
  • Более тяжёлый и будет ответом.

Больше интересных новостей

Комментарии
Добавить комментарий

Пока комментариев нет