Я лично не очень большой поклонник таких вопросов-головоломок, я предпочитаю практические упражнения по программированию в интервью.
Тем не менее, во-первых, это будет зависеть от того, смогу ли я сказать, сломаны они или нет с пола, на который я их бросаю. Я предполагаю, что могу.
Я бы поднялся на второй этаж и уронил первый мрамор. Если бы это сломалось, я попробовал бы первый этаж. Если бы это сломалось, я бы знал, что это не пол.
Если бы первый не сломался, я бы поднялся на 4-й этаж и уехал оттуда. Если бы это сломалось, я бы спустился вниз и взял другой мрамор, затем упал бы на 3-й этаж, разбив или нет, я бы знал, какой предел.
Если бы ни один не сломался, я бы взял и то и другое, и сделал бы тот же процесс, на этот раз начиная с 6-го этажа.
Таким образом, я могу пропустить каждый второй этаж, пока не получу мрамор, который разбивается.
Это было бы оптимизировано для раннего разрушения мрамора ... Я полагаю, что есть оптимальное количество этажей, которое я мог бы пропустить, чтобы получить максимум за каждый пропуск ... но тогда, если один сломается, мне придется проверить каждый этаж отдельно от первого этажа выше последнего известного этажа ... что, конечно, было бы больно, если бы я пропустил слишком много этажей (извините, сейчас я не найду оптимального решения).
В идеале, я бы хотел целую сумку шариков, тогда я мог бы использовать алгоритм двоичного поиска и делить число этажей пополам с каждой каплей ... но тогда это был не вопрос, не так ли?