Задача про бесконечный поезд
Представьте себе замкнутую по окружности железную дорогу. По ней едет поезд, последний вагон которого скреплён с первым так, что внутри можно свободно перемещаться между вагонами. Вы оказались в одном случайном вагоне и ваша задача — подсчитать их общее количество. В каждом вагоне можно включать или выключать свет, но начальное положение переключателей случайное и заранее неизвестно.
Все вагоны внутри выглядят строго одинаково, окна закрыты так, что невозможно посмотреть наружу, движение поезда равномерное. Помечать вагоны как-либо, кроме включения или выключения света, нельзя. Количество вагонов конечно (не верьте заголовку).
Solution:
var train = [ 'x', 'x', ' ', ' ', 'x', ' ', ' ', ' ', ' ', 'x', ' ', ' ', 'x', ' ', ' ', 'x', ' ', ' ', ' ', ' ', 'x', ' ', ' ', 'x', ' ', ' ', ' ', ' ', 'x', ' ', ' ', 'x', 'x' ] train[ 505 % train.length ] = 'x' // Turn on the light in wagon #505 for (var i = 505 + 1; ; i++) if (train[ i % train.length ] === 'x') { train[ i % train.length ] = ' ' if (train[ 505 % train.length ] === ' ') { train[ 505 % train.length ] = 'x' break } } for (var i = 505 + 1, train_length = 0; ; i++, train_length++) if (train[ i % train.length ] === 'x') { console.log('train_length = ', train_length + 1) break }
Output:
train_length = 33