Учитывая фрагмент вывода fizz buzz со всеми удаленными номерами, заполните правильные числа минимально возможными значениями так, чтобы фрагмент fizz buzz был правильным. Для целей этой задачи fizz
и buzz
имеют свои обычные значения 3 и 5 соответственно.
Если вход недопустимой последовательности fizz
, buzz
и пустые строки, то вместо вывода только zzubzzif
(с или без символов новой строки).
Вводом и выводом могут быть строки, разделенные новой строкой, или любой другой формат массива строк, подходящий для вашего языка.
Вы можете игнорировать или делать все, что вам нравится с помощью заглавных букв.
Вам нужно будет выбрать для обработки одного или нескольких из них: fizzbuzz
, fizz buzz
, buzz fizz
и т.д., но вы должны выбрать по крайней мере один из этих форматов.
Можно считать , что все входные некоторая последовательность fizz
, buzz
и пустые строки.
Примеры
Входные данные:шипениеВыход:
2
fizz
4
Входные данные:
жужжание шипениеВыход:
buzz
fizz
7
Входные данные:
FizzBuzzВыход:
13
14
fizzbuzz
16
17
Входные данные:
Выход:
1
Входные данные:
шипение шипениеВыход:
zzubzzif
Входные данные:
Выход:
zzubzzif
Ответы:
Java, 205 байт
Принимает в
String[]
качестве входных данных и возвращаетString
.Расширенный, исполняемый код:
источник
C #, 212 байт
Я сделал невероятное. Я использовал
goto
заявление, чтобы вырваться из цикла!Это использует тот факт, что последовательность должна начинаться с первых 15 элементов.
Отступы и новые строки для удобства чтения:
источник
break
ключевого слова?goto
выпрыгивает из внутреннего цикла и через остальную логику внешнего цикла.goto
C #! Даже не знал, что C # имел это!CJam, 72 байта
Программа выйдет с ошибкой, если она напечатает zzubzzif .
Используя интерпретатор Java, STDERR может быть закрыт для подавления возможного сообщения об ошибке. Если вы попробуете программу в интерпретаторе CJam , игнорируйте все выходные данные после первой строки.
Как это работает
источник
Perl, 140 байт
объяснение
@a
это массив входных строкwhile
петли,@s
имеет сгенерированную последовательность fizz-buzz@x
то же самое,@s
но с числами, замененными пустыми строками и новой строкой, добавленной к каждому элементу (для соответствия@a
)$c
это счетчик от 1 до 15@x
станет таким же, как вход@a
@s
zzufzzib или зависит от того,$c
был ли он в его пределах или нетисточник
Python, 176 байт
Вероятно, мог бы сделать намного лучше, но первая попытка в гольф. Советы приветствуются :)
сжавшийся
оригинал
источник
#Java, 205 Bytes
в качестве первой строки вашего ответа.'fizz'*(n%3<1)+'buzz'*(n%5<1)
вы можете удалить назначения f и b.(f+b)[::-1]
затем может быть вызовом известного fizzbuzz, напримерg(15)[::-1]
.g(0)
также работает, чтобы сохранить еще один байт :)..] for
может быть написано..]for
. Применяя этот трюк, вы получите 177 символов['','fizz','']
Есть также несколько других, которые нужно удалить, если вы сравните список ввода с списком, а не с использованием всех ()if a==[g(i + x) for x in r(l)]