Налоги с продаж в Соединенных Штатах сложны, если не сказать больше. Как правило, существует налог с продаж штата (есть несколько штатов, которые не собирают налог с продаж штата), но также может быть налог с продаж округа, налог с продаж школьного округа, налог с продаж муниципального (городского) или муниципальный район налог с продаж. Там могут быть разные налоги с продаж в разных частях города. Однако для решения этой задачи мы сосредоточимся только на государственном налоге с продаж.
Учитывая сумму в долларах США больше нуля (с точностью до двух десятичных разрядов) и штат (полное имя или двухбуквенное сокращение, ваш выбор, регистр значения не имеет), а также с помощью приведенной ниже диаграммы процентов налога с продаж, вывести соответствующий государственный налог с продаж, который требуется собрать для этой конкретной продажи, с точностью до усеченного до двух знаков после запятой. Пожалуйста, укажите, как ваш код обрабатывает округление.
Редактировать: аббревиатура для Вашингтона была неверно указана как WS вместо WA. Ответы могут использовать любое сокращение, так как это было моей глупостью.
State Abbr %
Alabama AL 4.00%
Alaska AK 0.00%
Arizona AZ 5.60%
Arkansas AR 6.50%
California CA 6.00%
Colorado CO 2.90%
Connecticut CT 6.35%
Delaware DE 0.00%
Florida FL 6.00%
Georgia GA 4.00%
Hawaii HI 4.00%
Idaho ID 6.00%
Illinois IL 6.25%
Indiana IN 7.00%
Iowa IA 6.00%
Kansas KS 6.50%
Kentucky KY 6.00%
Louisiana LA 5.00%
Maine ME 5.50%
Maryland MD 6.00%
Massachusetts MA 6.25%
Michigan MI 6.00%
Minnesota MN 6.875%
Mississippi MS 7.00%
Missouri MO 4.23%
Montana MT 0.00%
Nebraska NE 5.50%
Nevada NV 4.60%
New Hampshire NH 0.00%
New Jersey NJ 6.88%
New Mexico NM 5.13%
New York NY 4.00%
North Carolina NC 4.75%
North Dakota ND 5.00%
Ohio OH 5.75%
Oklahoma OK 4.50%
Oregon OR 0.00%
Pennsylvania PA 6.00%
Rhode Island RI 7.00%
South Carolina SC 6.00%
South Dakota SD 4.50%
Tennessee TN 7.00%
Texas TX 6.25%
Utah UT 4.70%
Vermont VT 6.00%
Virginia VA 4.30%
Washington WA 6.50%
West Virginia WV 6.00%
Wisconsin WI 5.00%
Wyoming WY 4.00%
Пример для Калифорнии с государственным налогом с продаж 6% -
CA
1025.00
61.50
Пример для Миннесоты на 6,875% -
MN
123.45
8.49
источник
Minnesota MN 6.875%
- потому что 0,005%, ну, на самом деле много.Ответы:
Mathematica,
112103777666 байтMathematica имеет встроенный для всего
Принимает название штата (любой формат; сокращение или полное имя) и сумму в долларах.
Попробуйте это на Wolfram Sandbox
Применение
объяснение
Интерпретируйте ввод как название штата США и сгенерируйте
Entity
.Получите ставку налога с продаж.
Умножьте это на второй вход.
Отформатируйте результат в число, состоящее из 9 цифр слева от десятичной дроби и 2 цифр справа.
источник
R ,
219212 байтПринимает состояние как аббревиатуру (все заглавные буквы).
state.abb
это встроенные данные R с сокращениями штатов в алфавитном порядке, поэтому он жестко кодирует налоги с продаж, находит индекс штатов, рассчитывает налог с продаж и форматирует до 2 десятичных знаков (вывод в виде строки).Попробуйте онлайн!
источник
05AB1E , 134 байта
Попробуйте онлайн!
RIP Mathematica выигрывает.
Все это делает сжимает следующие строки:
А также:
Затем использует индекс состояния ввода для определения индекса скорости, по умолчанию равного 6, потому что существует так много состояний с 6%.
Для других потреблять:
Обратите внимание, что это работает только потому, что я упорядочил состояния так, чтобы пересечение двух состояний не создавало другое состояние EG (
OHIN
содержит,[OH,IN,HI]
тогда какINOH
содержит только[IN,OH]
)Большинство идей для этого пришло из моей предыдущей записи, основанной на штате .
источник
-d
Pyth,
270258233219 байтДолжны быть переданы параметры примерно так:
Объяснение:
Спасибо @ Mr.Xcoder.
источник
*c@[6Z5.75K6.25 5.5 5 4Z7 6.5J6 7J6.875 7 4J6.35Z6 7 5 4.75 4 4.23J5J5.13 4.6JJ4J4 4.3 4.5Z5.6J.5 4.7K4.5KZ6.5 6.88 5.5J2.9)xc."AZ-íâFT34r7²¨cK'ÉT?Ú5Ï)}4Që7ËÅÖpuªXTiÖ¶7×ìÉͨ."2w100
. Он использует упакованные строки (те, которые начинаются с."
).Z
было доступно. Еще раз спасибо ;-).Java (OpenJDK 8) ,
594 + 19592580575412 байтПопробуйте онлайн!
источник
Arrays
какjava.util.Arrays
и избавления от оператора импорта. Я бы добавил ссылку TIO, но она слишком длинная. : Pfinal
; меняетсяdouble
наfloat
; меняетсяDouble.parseDouble
наnew Float
; и переход(s,a)->
наs->a->
с помощью карри. Вот ссылка TIO, чтобы увидеть, как.substring(3)
наsubstring(2)
: TIO 415 байт . Это короче, чем мой ответ на Java ..;)Java 8,
486467309299290289 байт-19 байт благодаря @MagicOctopusUrn путем удаления точек с запятой.
Объяснение:
Попробуй это здесь.
источник
HI;NY
иMT;NH
в настоящее время единственные вещи в вашем коде мешают вам удалить все точки с запятой. Обратный порядок обоих, и это будет работать для 20 сохраненных байтов.7
вашего ответа (хотяTN
это влияет на текущий порядок0
).INMSRITN 7.00
&AKDENHORMT 0.00
возможно, не конфликтуя ни с чем другим.Perl 6, 341 байт
Так что да. Я думаю, это довольно надумано. Здесь используются мета-операторы Perl 6, как
X=>
здесь, которыеX
(перекрестный продукт) объединяются с=>
.Это означает
<ME NE> X=> 5.5
(где<ME NE>
означает('ME', 'NE')
)=> 5.5
применяется к каждому элементу массива, уступаяME => 5.5, NE => 5.5
. Скобки здесь просто для приоритета ...Как игрок в гольф (эмм ...), я, очевидно, не писал это от руки (кроме самой функции). Поэтому я написал мета-гольфиста, чтобы создать наиболее эффективную комбинацию!
Он генерирует оба
X=>
случая и более простой случай (с каждым перечисляемым), и я выбрал самый короткий (первый).источник
JavaScript (ES6),
227224 байтаПринимает ввод в синтаксисе карри,
(s)(v)
где s - это состояние, а v - это сумма. Использует округление пола.демонстрация
Показать фрагмент кода
источник
Котлин , 444 байта
Попробуйте онлайн!
украшенный
источник
Python 3 , 303 байта
Попробуйте онлайн!
Очень просто: данные хранятся в виде двух символов + список цифр: каждый процент меньше 10, поэтому они могут быть сохранены как целая часть (1 цифра) + десятичная часть (0 -... цифра (и)).
источник
C # ,
318309 байтДанные
String
s
Двухбуквенное сокращение верхнего регистра.Double
v
значениеString
Налоговая стоимость, которую нужно собрать, округляется до 2 десятичных знаков.Golfed
Ungolfed
Ungolfed читаемый
Полный код
релизы
318 bytes
- Исходное решение.- 9 bytes
- Изменены.ToString("F2")
используемые при первом возврате к интерполированным строкам.Ноты
источник
AWK , 277 байт
Попробуйте онлайн!
Достойная оценка, но далеко от Mathematica. Я добавил 2 байта, печатая новую строку после каждой проверки, но я думаю, что так получше :)
(Надеюсь, очевидно, что входными данными должны быть аббревиатура состояния и значение в одной строке.)
источник