Представьте себе замкнутую по окружности железную дорогу. По ней едет поезд, последний вагон которого скреплён с первым так, что внутри можно свободно перемещаться между вагонами. Вы оказались в одном случайном вагоне и ваша задача — подсчитать их общее количество. В каждом вагоне можно включать или выключать свет, но начальное положение переключателей случайное и заранее неизвестно.

Все вагоны внутри выглядят строго одинаково, окна закрыты так, что невозможно посмотреть наружу, движение поезда равномерное. Помечать вагоны как-либо, кроме включения или выключения света, нельзя. Количество вагонов конечно (не верьте заголовку).

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