Я знаю, название взломало тебя
Учитывая количество денег на выходе, наименьшее количество монет составляет эту сумму
Примеры
0.1
1 dime
0.01
1 penny
0.28
1 quarter 3 penny
0.56
2 quarter 1 nickel 1 penny
1.43
5 quarter 1 dime 1 nickel 3 penny
спекуляция
- 100 центов за доллар.
- Значения каждого типа монет:
penny
1 центnickel
5 центовdime
10 центовquarter
25 центов
Встроенные модули, которые упрощают эту задачу, не допускаются.
I / O
Ввод представляет собой десятичное число, представляющее значение в долларах всего
- Не нужно множить
- Заказ:
quarter
->penny
- Выход должен быть
<#_of_coins> <coin type>
- Сепараторы:
,
или,
или
Единственный разрешенный пробел - это завершающий символ новой строки / пробела.
Если есть ноль типа монеты, этот тип монеты не должен отображаться . Например 0.25
-> 1 quarter
нет 1 quarter 0 dime 0 nickel 0 penny
1.43
, который больше, чем1
(less than 1)
часть не должна была быть там. Забыл удалить это в песочнице, я думаю2 quarter(2 spaces)1 nickel 1 penny
?13.00
может быть возможным вводом, но ввод никогда не будет13
. У меня всегда будет десятичное числоОтветы:
CJam, 60
Этот сценарий, похоже, имеет много возможностей для улучшения, но он короче, чем любой другой. Это использует встроенную команду «md», которая возвращает как целочисленный результат деления, так и остаток. Это делает следующее:
Попробуй здесь
предыдущие версии:
источник
JavaScript ES6, 107 байт
Простая математика.
источник
|0
послеn%5
?Python 2, 120 байт
Просто чтобы быть в безопасности, изменилось на что-то, что определенно работает, чтобы исправить комментарий @ Ogaday, по крайней мере сейчас. Я не уверен, нужно ли мне
int()
тоже, но мне трудно убедить себя, что я не нуждаюсь .дополнительный байт выключен, но печатает дополнительный
L
для больших входных данных (хотя этот код в любом случае не работает для очень больших входных данных из-за точности с плавающей запятой).источник
a=40/a+5^12
[x^k for x in [10, 5, 1]]
и[k/y for y in [25, 10, 5]]
для разныхk
, потом увидел, что два списка были смещены на 5. Вероятно, неоптимальный, но у меня не было времени на грубую силу.10.03
и10.04
. Это связано с представлением чисел в Python и тем, как оно округляет их до целых. Попробуй"print %d"%(10.03*100)
.n=int(''.join(raw_input().split(".")))
может работать, но это довольно многословно.DC, 104
Новые строки добавлены для «читабельности» :
источник
Сетчатка , 97
Спасибо (как всегда) @randomra - сохранил 1 байт.
Предполагается, что ввод либо в форме
xxx.yy
илиxxx.y
.Попробуйте онлайн.
источник
$&
это то же самое,$0
так что вы можете сохранить байты в$0.0
пути$&0
.Витси,
11010097 байтДа, подожди, я все еще методизирую это.
Объяснение в грядущем подробном режиме:
Попробуйте онлайн!
источник
retrauq
почти похоже на слово ...Java 8 лямбда, 165 байт
Ожидается ввод
y
как double или float.Столько троичных. ; -;
источник
;-;
Что это? Это вампа?JavaScript ES6,
202200 байтЯ надеюсь, что это может быть в гольф ...
Ungolfed код:
источник
LabVIEW, 62 примитива LabVIEW
Я создал 2 массива для имен и значений и прошёл их сверху (индексный массив с i), используя оператор по модулю (вещь R IQ). Оставшиеся монеты передаются в сдвиговый регистр.
Если значение больше 0, я преобразую число в строку, объединяю переданную строку номер и название монеты и помещаю ее обратно в регистр сдвига.
Ijus понял, что мой GIF не показывает ложный случай, но все равно ничего не видно, он просто проходит через строку, которая вошла.
источник
Japt, 77 байт
К счастью, все четыре названия монет сжимаются.
¿
Должен быть буквальным байт 0x81. Проверьте это онлайн!источник
73 quarter 1 nickel 2 penny
. 73 * .25 + 1 * .05 + 2 * .01 = 18.32 вместо 18.33.C
147144142140 байтРазгулялся с тестами:
источник
char*[]
наchar**
,int a[]
сint*a
, и положитьm%=a[i++]
в последней части цикла for. Следует сохранить 4 байта. Еще не проверял, так что попробуйте каждый из них.m%=a[i++]
немного, хотя, спасибо.if(m/a[i])
с ,m/a[i]&&
чтобы сохранить более 2 байта."quarter\0dime\0nickel\0penny"
в printf. Каждый \ 0 завершает строку, сохраняя 1 символ каждый\0
вызывает сбой программы. Я не уверен, как итерация должна работать над такой строкой в любом случае.MATL , 82
106107Попробуйте это в MATL Online!
источник
JavaScript,
156145144 байтаСовпадение с формулой ETHproduction не соответствует, но в любом случае ...
Это один из моих первых раундов игры в гольф, поэтому любые улучшения очень ценятся! Я уже украл "xor trunc" ETH - извините, это было слишком умно :-)
Более читабельно:
Примечание. Во время тестирования я понял, что JavaScript (по крайней мере, на моем компьютере?) Делится
1.13 / 0.01
на1.12999...
, что делает мои (и, вероятно, все другие представления JS) не работающими на 100% должным образом ...источник
Perl 5 -
128124 байтаЯ думаю, что это может быть переписано, чтобы быть намного короче, но я действительно не вижу этого.
РЕДАКТИРОВАТЬ: Просто математический трюк, чтобы сохранить 4 символа.
источник
Perl 6 , 96 байт
Использование:
источник
Python 2,
167161 байтОбновление 1: Украл идею Sp3000 использовать input () и сделать мой код скриптом вместо функции.
источник
C, 162 байта
К сожалению, не работает без
#include
.Ungolfed
источник
Lua 5,3,
141139132131 байтВроде как основано на ответе Sp3000 на Python, но с моей собственной магической формулой.
Редактировать - улучшена
a
формула. Ранее это былоa=a*3%13~#s%4
.Изменить 2 - ранее я использовал
math.ceil
для округления и преобразования в целое число. Теперь я//
снова использую для округления и добавления~~
для преобразования в целое число.Редактировать 3 - побрить персонажа, изменив рисунок с
"%w+ "
на".- "
.источник
K (ок) ,
9578 байтРешение:
Попробуйте онлайн!
Пример:
Объяснение:
По модулю ввод каждой монеты, затем разделите монеты по результату.
Передайте каждый результат вместе с именем монеты в функцию, возвращая строковое значение обоих, если количество монет не равно нулю.
Расправьте все и соедините вместе с пробелами.
источник
Котлин , 147 байт
украшенный
Тест
TIO
TryItOnline
источник