Ваша задача состоит в том, чтобы напечатать ввод, подождать любое количество времени, распечатать ввод, подождать дважды, в то время как вы первоначально ожидали, распечатать ввод снова и т. Д. Первоначальная задержка должна быть менее 1 часа, и вы должны иметь точность +/- 5% в последующих задержках. Кроме этого, нет никаких ограничений по времени задержки.
Пример:
Вход: hi
.
Выход: hi
(1 мс пауза) hi
(2ms пауза) hi
(4ms пауза) hi
(8ms пауза) hi
(пауза 16мс) и т.д.
Также разрешено:
hi
(1-минутная пауза) hi
(2-минутная пауза) hi
(4-минутная пауза) hi
(8-минутная пауза) hi
(16-минутная пауза) и т. Д.
Ввод должен быть предоставлен в начале программы (STDIN, параметр командной строки, параметр функции и т. Д.) И будет строкой.
Начальная задержка не может быть 0.
y=x=>(x&&alert(x),y())
было бы технически разрешены, но я бы downvote его.Ответы:
05AB1E , 6 байтов
Код:
Объяснение:
Попробуйте онлайн!
источник
w
вместо.W
.w
ждет одну секунду, несмотря ни на что, и.W
выдает a и ждет столько миллисекунд.Gw
.Царапина, 8 блоков + 3 байта
Эквивалент в Python:
источник
Python 3,
6056 байтChangelog:
источник
print
операторе, переключившись на Python 2 :)MATL , 8 байт
Первая пауза составляет 2 секунды.
Попробуйте это на MATL Online . Или посмотрите измененную версию, которая отображает время, прошедшее с момента запуска программы. (Если переводчик не работает, обновите страницу и попробуйте снова).
Или посмотреть GIF:
объяснение
источник
Mathematica
34323029 байтИсходное решение 34 байта:
Сбрей 2 байта с помощью Do
Сбрейте еще один байт с помощью рекурсивного решения @ MartinEnder
@ngenisis использует ReplaceRepeated рекурсию, чтобы сбрить другой байт
источник
True
есть1>0
. Но что-то вроде этого немного короче:±n_:=#0[Print@n;Pause@#;2#]&@1
1<2
до вашего комментария. Тем не менее, ваше рекурсивное решение сохраняет байт. Спасибо @MartinEnder±
один байт в кодировке CP-1252 (кодировка Windows по умолчанию).1//.n_:>(Print@#;Pause@n;2n)&
Октава,
4241 байтСохранено один байт благодаря rahnema1,
p*=2
короче чемp=p*2
.Я не могу поверить, что я не смог сыграть в эту игру, но на самом деле это было не так просто.
p*=2
где-то еще.while pause(p*=2)
источник
input(0)
работыJava (OpenJDK 8) , 113 байт
Попробуйте онлайн!
-60 байт благодаря Лики Нун!
источник
public
вpublic static void main
.R,
5048 байтоввозвращает анонимную функцию с одним обязательным аргументом - строку для печати. Печатает без перевода строки, просто выплевывает
x
на экран.i
это необязательный аргумент, который по умолчанию равен1
, ждетi
секунды и удваиваетсяi
.-2 байта благодаря Pajonk
Попробуйте онлайн!
источник
i=1
тогда использоватьi=i*2
в конце и просто спатьi
?Ruby,
34282322 (+2 для-n
) = 24 байта3 байта сохранены благодаря Value Ink!
1 байт сохранен благодаря Даньеро
Начинается с
2
, затем4
и т. Д.объяснение
источник
-n
флагом позволяет пропустить первоначальныйgets
вызов, потому что флаг будет обрабатывать его для васprint
без аргумента эквивалентноputs$_
- один байт сохраненАлиса , 16 байт
Попробуйте онлайн!(Конечно, там мало что можно увидеть, но вы можете проверить, как часто он печатался в течение одной минуты.)
объяснение
источник
Р,
4443 байтаВычеркнуто 44 все еще регулярно 44; (
Этот ответ уже дает достойное решение, но мы можем сэкономить еще несколько байтов.
Анонимная функция, принимающая практически все для печати в качестве аргумента
x
. Начинается через 2 секунды и удваивается каждый раз после этого. Злоупотребляет тем фактом, чтоT
по умолчанию определяется как то,TRUE
что оценивается в1
.Кроме того, пока этот комментарий все еще получает зеленый свет от OP, мы можем сделать его еще короче, но я не думаю, что это в духе задачи.Время ожидания 0 больше не разрешено.источник
T
. в более короткой версии ответа вам даже не нужны скобки, просто пробел.T
не нравится,T
может постоять за себя. Кроме того, хорошая находка :)Cubix , 30 байтов
Попробуй здесь
Это отображается на куб с длиной стороны 3.
источник
Баш , 37 байт
По какой-то причине TIO не покажет вывод, пока вы не остановите выполнение программы.
Попробуйте онлайн!
источник
PHP, 31 байт
спит 1, 2, 4, 8, ... секунд. Беги как труба с
php -nR '<code>'
Будет работать до 63-го отпечатка (на 64-битной машине), после этого больше не будет ожидания.
Версия 1 выдаст предупреждения
sleep() expects parameter 1 to be integer, float given
,Версия 2 выдаст одно предупреждение
sleep(): Number of seconds must be greater than or equal to 0
.Вставьте
@
перед,sleep
чтобы отключить предупреждения.источник
TI-Basic, 21 байт
источник
Python 3, 61 байт
Похож на гольф @ L3viathan, но использует
while
циклисточник
CJam, 26 байтов
Не работает должным образом на TIO.
Первая пауза составляет 20 миллисекунд.
объяснение
источник
C 51 байт
C, 35 байт как функция
Принимает ввод в качестве аргумента командной строки.
источник
Пакетная, 62 байта
Это оказалось на байт короче, чем явное удвоение
t
в цикле:источник
Ретикулярный , 12 байтов
Попробуйте онлайн!
объяснение
источник
C #,
8079 байтовСохранено один байт благодаря @raznagul.
источник
Write
оператор в тело цикла.Python 2, 54 байта
Использует длительный расчет вместо временных библиотек.
источник
PowerShell,
35333029 байтС полезной подсказкой от всего и Джои
объяснение
Выполнено с:
источник
for(;;)
. Даже не пытался удалить точки с запятой.$a=1
качестве инициализации в,for
чтобы сохранить еще один байт (for($a=1){...}
). Кроме того, я не уверен, стоит ли считать%
, поскольку текущая подпрограмма, которую вы выполняете, это просто блок скрипта. (Мои проблемы, как правило, довольно строгие в том, чтобы требовать программу, обходя подобные размышления, но по поводу чего- либо, я все еще не совсем уверен, как рассчитывать различные способы использования PowerShell.)Python 3, 49 байт
Использует небольшую задержку
+=
операции и выполняет ееx
раз.x
удваивается, добавляя один к себе столько раз, сколько значениеx
.Начинается с
6^6
(46656), чтобы придерживаться максимальной 5% вариации задержки.источник
Perl 6 , 39 байт
Попробуйте (
print
переопределено, чтобы добавить информацию о времени)Expanded:
источник
JS (ES6),
4442403836 байтВычеркнуто 44 все еще 44
Не любите боевые бомбы?
Технически правильно, но не правильно:
-3 байта благодаря Cyoce, -2 благодаря Business Cat, -2 благодаря Neil
источник
i=1,y=x=>(alert(x),setTimeout(y,i*=2))
чтобы сэкономить пару байтовi=1,y=x=>setTimeout(y,i*=2,console.log(x))
?Common Lisp, 49 байт
Первая задержка должна быть
1
второй.источник
Pyth, 7 байт
Объяснение:
источник
TI-BASIC, 36 байтов
Начальный период ожидания составляет 1 секунду.
источник
Ракетка, 51 байт
пример
источник