Die Umsatzsteuern in den USA sind, gelinde gesagt, kompliziert. Im Allgemeinen gibt es eine staatliche Umsatzsteuer (es gibt eine Handvoll Staaten, die keine staatliche Umsatzsteuer erheben), aber es kann auch eine Kreisumsatzsteuer, eine Schulbezirksumsatzsteuer, eine kommunale (Stadt-) Umsatzsteuer oder eine Umsatzsteuer in der Metropolregion. In verschiedenen Teilen einer Stadt kann es sogar unterschiedliche Umsatzsteuern geben. Für diese Herausforderung konzentrieren wir uns jedoch nur auf die staatliche Umsatzsteuer.
Bei einem US-Dollar-Betrag größer als Null (auf zwei Dezimalstellen genau) und einem Status (entweder der vollständige Name oder die Abkürzung aus zwei Buchstaben, Ihre Wahl, der Fall spielt keine Rolle) und die Verwendung der folgenden Tabelle mit Umsatzsteuerprozentsätzen. Geben Sie die entsprechende staatliche Umsatzsteuer aus, die für diesen bestimmten Verkauf erhoben werden muss, genau und auf zwei Dezimalstellen gekürzt. Bitte geben Sie an, wie Ihr Code mit Rundungen umgeht.
Bearbeiten: Die Abkürzung für Washington wurde fälschlicherweise als WS anstelle von WA aufgeführt. Antworten können beide Abkürzungen verwenden, da dies mein Trottel war.
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%
Beispiel für Kalifornien bei 6% staatlicher Umsatzsteuer -
CA
1025.00
61.50
Beispiel für Minnesota bei 6,875% -
MN
123.45
8.49
quelle
Minnesota MN 6.875%
- weil 0,005% eigentlich viel sind.Antworten:
Mathematica,
112103777666 BytesMathematica hat für alles ein eingebautes
Nimmt einen Statusnamen (ein beliebiges Format; Abkürzung oder vollständiger Name) und den Dollarbetrag.
Probieren Sie es auf Wolfram Sandbox
Verwendungszweck
Erläuterung
Interpretieren Sie die Eingabe als US-Bundesstaatnamen und generieren Sie eine
Entity
.Holen Sie sich den Umsatzsteuersatz.
Multiplizieren Sie das mit dem zweiten Eingang.
Formatieren Sie das Ergebnis in eine Zahl mit 9 Stellen links von der Dezimalstelle und 2 Stellen rechts.
quelle
R ,
219212 BytesNimmt den Zustand als Abkürzung (alle Großbuchstaben).
state.abb
sind die eingebauten R-Daten mit den staatlichen Abkürzungen in alphabetischer Reihenfolge, so dass die Umsatzsteuern fest codiert, der Index des Staates ermittelt, die Umsatzsteuer berechnet und auf 2 Dezimalstellen formatiert werden (Ausgabe als Zeichenfolge).Probieren Sie es online aus!
quelle
05AB1E , 134 Bytes
Probieren Sie es online aus!
RIP Mathematica gewinnt.
Dies komprimiert lediglich die folgenden Zeichenfolgen:
Und:
Verwendet dann den Index des Eingabestatus, um den Index der Rate zu bestimmen, standardmäßig 6, da es so viele Zustände mit 6% gibt.
Für andere zu konsumieren:
Beachten Sie, dass dies nur funktioniert, weil ich die Zustände so angeordnet habe, dass kein Schnittpunkt von 2 Zuständen einen anderen Zustand EG erzeugt (
OHIN
enthält,[OH,IN,HI]
währendINOH
nur enthält[IN,OH]
)Die meisten Ideen dafür stammen aus meinem vorherigen staatlichen Eintrag .
quelle
-d
FlaggePyth,
270258233219 BytesParameter müssen wie folgt übergeben werden:
Erläuterung:
Vielen Dank an @ Mr.Xcoder.
quelle
*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
. Es verwendet gepackte Strings (die beginnen mit."
).Z
verfügbar. Danke nochmal ;-).Java (OpenJDK 8) ,
594 + 19592580575412 BytesProbieren Sie es online aus!
quelle
Arrays
als adressierenjava.util.Arrays
und entfernen. Ich würde einen TIO-Link einfügen, aber er ist zu lang. : Pfinal
. wechselndouble
zufloat
; wechselnDouble.parseDouble
zunew Float
; und wechseln(s,a)->
zus->a->
mit Curry. Hier ist der TIO-Link um zu sehen wie.substring(3)
zusubstring(2)
: TIO 415 Bytes . Das ist kürzer als meine Java-Antwort ..;)Java 8,
486467309299290289 Bytes-19 Bytes dank @MagicOctopusUrn durch Entfernen der Semikolons.
Erläuterung:
Probieren Sie es hier aus.
quelle
HI;NY
undMT;NH
sind derzeit die einzigen Dinge in Ihrem Code, die Sie daran hindern, alle Semikolons zu entfernen. Kehren Sie die Reihenfolge von beiden um und es würde für etwa 20 gespeicherte Bytes funktionieren.7
Ihre Antwort hinzufügen (obwohlTN
dies die aktuelle Reihenfolge von beeinträchtigt0
).INMSRITN 7.00
&AKDENHORMT 0.00
ist möglich, ohne mit irgendetwas anderem in Konflikt zu geraten.Perl 6, 341 Bytes
Also, was? Das ist ziemlich erfunden, denke ich. Dies verwendet die Metaoperatoren von Perl 6, wie
X=>
hier, dieX
(produktübergreifend) mit kombiniert werden=>
.Das bedeutet
<ME NE> X=> 5.5
(wo<ME NE>
bedeutet('ME', 'NE')
)=> 5.5
, dass auf jedes Element des Arrays angewendet wird, was ergibtME => 5.5, NE => 5.5
. Die Klammern haben nur Vorrang ...Als Golfer (ähm ...) habe ich das offensichtlich nicht von Hand geschrieben (außer der eigentlichen Funktion). Also habe ich einen Metagolfer geschrieben, um die effizienteste Kombination zu generieren!
Es werden sowohl die
X=>
Fälle als auch der einfachere Fall generiert (wobei jeder aufgezählt wird), und ich habe den kürzesten ausgewählt (den ersteren).quelle
JavaScript (ES6),
227224 ByteNimmt Eingaben in die Curry-Syntax vor,
(s)(v)
wobei s der Status und v der Betrag ist. Verwendet Bodenrundung.Demo
Code-Snippet anzeigen
quelle
Kotlin , 444 Bytes
Probieren Sie es online aus!
Verschönert
quelle
Python 3 , 303 Bytes
Probieren Sie es online aus!
Ganz einfach: Die Daten werden als zwei Zeichen + Ziffernliste gespeichert: Jeder Prozentsatz ist kleiner als 10, daher kann sie als ganzzahliger Teil (1 Ziffer) + Dezimalteil (0 -... Ziffer (n)) gespeichert werden.
quelle
C # ,
318309 BytesDaten
String
s
Die 2-Buchstaben-Abkürzung des Status in Großbuchstaben.Double
v
Der WertString
Der zu erhebende Steuerwert wird auf 2 Dezimalstellen gerundetGolf gespielt
Ungolfed
Ungolfed lesbar
Vollständiger Code
Veröffentlichungen
318 bytes
- Erste Lösung.- 9 bytes
- Die.ToString("F2")
in der ersten Rückkehr verwendeten wurden in interpolierte Zeichenfolgen geändert .Anmerkungen
quelle
AWK , 277 Bytes
Probieren Sie es online aus!
Eine respektable Punktzahl, aber bei weitem nicht in der Nähe von Mathematica. Ich habe 2 Bytes hinzugefügt, indem ich nach jeder Überprüfung einen Zeilenumbruch gedruckt habe, aber ich denke, dass es auf diese Weise schöner ist :)
(Hoffentlich ist es offensichtlich, dass die Eingabe die Statusabkürzung und ein Wert in einer Zeile sein sollte.)
quelle