Podatki od sprzedaży w Stanach Zjednoczonych są co najmniej skomplikowane. Zasadniczo istnieje państwowy podatek od sprzedaży (istnieje kilka stanów, które nie pobierają państwowego podatku od sprzedaży), ale może również istnieć powiatowy podatek od sprzedaży, szkolny podatek od sprzedaży, miejski podatek od sprzedaży (miejski) lub podatek od sprzedaży podatek od sprzedaży w obszarze metropolitalnym. W różnych częściach miasta mogą istnieć nawet różne podatki od sprzedaży. Na potrzeby tego wyzwania skupimy się jednak tylko na stanowym podatku od sprzedaży.
Biorąc pod uwagę kwotę dolara amerykańskiego większą niż zero (z dokładnością do dwóch miejsc po przecinku) i stan (albo pełna nazwa, albo dwuliterowy skrót, twój wybór, wielkość liter nie ma znaczenia) i korzystając z poniższego wykresu procentowego podatku od sprzedaży, generują odpowiedni stanowy podatek od sprzedaży wymagany do tej konkretnej sprzedaży, dokładny i obcięty z dokładnością do dwóch miejsc po przecinku. Podaj, jak Twój kod obsługuje zaokrąglanie.
Edycja: skrót dla Waszyngtonu został niepoprawnie wymieniony jako WS zamiast WA. W odpowiedziach można użyć dowolnego skrótu, ponieważ to był mój głupek.
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%
Przykład dla Kalifornii z 6% stanowym podatkiem od sprzedaży -
CA
1025.00
61.50
Przykład dla Minnesoty na 6,875% -
MN
123.45
8.49
źródło
Minnesota MN 6.875%
- ponieważ 0,005% to właściwie dużo.Odpowiedzi:
Mathematica,
112103777666 bajtówMathematica ma wbudowane wszystko
Pobiera nazwę stanu (dowolny format; skrót lub imię i nazwisko) oraz kwotę w dolarach.
Wypróbuj na Wolfram Sandbox
Stosowanie
Wyjaśnienie
Interpretuj dane wejściowe jako nazwę stanu USA i wygeneruj
Entity
.Uzyskaj stawkę podatku od sprzedaży.
Pomnóż to przez drugie wejście.
Sformatuj wynik w postaci 9 cyfr po lewej stronie dziesiętnej i 2 cyfr po prawej stronie.
źródło
R ,
219212 bajtówPrzyjmuje stan jako skrót (wszystkie wielkie litery).
state.abb
to wbudowane dane R ze skrótami stanu w kolejności alfabetycznej, więc koduje podatki od sprzedaży, znajduje indeks stanu, oblicza podatek od sprzedaży i formatuje do 2 miejsc po przecinku (dane wyjściowe jako ciąg).Wypróbuj online!
źródło
05AB1E , 134 bajty
Wypróbuj online!
RIP Mathematica wygrywa.
Wszystko to kompresuje następujące ciągi:
I:
Następnie używa indeksu stanu wejściowego, aby określić indeks szybkości, domyślnie 6, ponieważ istnieje tak wiele stanów z 6%.
Aby inni mogli spożywać:
Zauważ, że to działa tylko dlatego, że uporządkowałem stany tak, że żadne przecięcie 2 stanów nie tworzy innego stanu EG (
OHIN
zawiera[OH,IN,HI]
natomiastINOH
zawiera tylko[IN,OH]
)Większość pomysłów na to pochodzi z mojego poprzedniego wpisu dotyczącego stanu .
źródło
-d
flagęPyth,
270258233219 bajtówNależy przekazać parametry takie jak:
Wyjaśnienie:
Dzięki @ Mr.Xcoder.
źródło
*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
. Używa spakowanych ciągów (tych, które zaczynają się od."
).Z
jest dostępny. Jeszcze raz dziękuję ;-).Java (OpenJDK 8) ,
594 + 19592580575412 bajtówWypróbuj online!
źródło
Arrays
jakjava.util.Arrays
i pozbycie instrukcji import. Chciałbym dołączyć link TIO, ale jest za długi. : Pfinal
; zmianadouble
nafloat
; zmianaDouble.parseDouble
nanew Float
; i zmieniając(s,a)->
sięs->a->
za pomocą curry. Oto link TIO, aby zobaczyć, jak to zrobić.substring(3)
nasubstring(2)
: TIO 415 bajtów . To krócej niż moja odpowiedź Java ...;)Java 8,
486467309299290289 bajtów-19 bajtów dzięki @MagicOctopusUrn poprzez usunięcie średników.
Wyjaśnienie:
Wypróbuj tutaj.
źródło
HI;NY
iMT;NH
obecnie są jedynymi rzeczami w twoim kodzie, które powstrzymują cię przed usunięciem wszystkich średników. Odwróć kolejność obu i działałoby to dla około 20 zapisanych bajtów.7
do swojej odpowiedzi (chociażTN
koliduje to z obecną kolejnością0
).INMSRITN 7.00
&AKDENHORMT 0.00
jest możliwe bez konfliktu z niczym innym.Perl 6, 341 bajtów
No tak. To chyba wymyślone. Używa to metaoperatorów Perla 6, jak
X=>
tutaj, co jestX
(cross-product) połączone z=>
.Oznacza to
<ME NE> X=> 5.5
(gdzie<ME NE>
oznacza('ME', 'NE')
)=> 5.5
zastosowanie do każdego elementu tablicy, dającME => 5.5, NE => 5.5
. Nawiasy są tutaj tylko w celu pierwszeństwa ...Jako golfista (erm ...), oczywiście nie napisałem tego ręcznie (z wyjątkiem faktycznej funkcji). Napisałem więc meta-golfa, aby wygenerować najbardziej wydajną kombinację!
Generuje zarówno
X=>
przypadki, jak i sprawy najprostsze (każda jest wyliczana), a ja wybrałem najkrótszą (pierwszą).źródło
JavaScript (ES6),
227224 bajtyPobiera dane wejściowe w składni curry,
(s)(v)
gdzie s to stan, a v to ilość. Wykorzystuje zaokrąglanie podłogi.Próbny
Pokaż fragment kodu
źródło
Kotlin , 444 bajty
Wypróbuj online!
Upiększony
źródło
Python 3 , 303 bajty
Wypróbuj online!
Bardzo proste: dane są przechowywane jako dwa znaki + lista cyfr: każdy procent jest mniejszy niż 10, a zatem może być przechowywany jako część całkowita (1 cyfra) + część dziesiętna (cyfra 0 ...).
źródło
C # ,
318309 bajtówDane
String
s
2-literowy skrót wielkiej litery stanu.Double
v
wartośćString
Wartość podatku, którą należy pobrać, w zaokrągleniu do 2 miejsc po przecinkuGrał w golfa
Nie golfił
Nieczytelny czytelny
Pełny kod
Wydawnictwa
318 bytes
- Wstępne rozwiązanie.- 9 bytes
- Zmieniono.ToString("F2")
używane przy pierwszym powrocie na interpolowane ciągi.Notatki
źródło
AWK , 277 bajtów
Wypróbuj online!
Szanowany wynik, ale nigdzie w pobliżu Mathematica. Dodałem 2 bajty, drukując nowy wiersz po każdym sprawdzeniu, ale myślę, że jest ładniejszy :)
(Mam nadzieję, że oczywiste jest, że dane wejściowe powinny być skrótem stanu i wartością w jednym wierszu).
źródło