Les taxes de vente aux États-Unis sont pour le moins compliquées. En règle générale, il existe une taxe de vente d'État (il existe une poignée d'États qui ne perçoivent pas de taxe de vente d'État), mais il peut également y avoir une taxe de vente du comté, une taxe de vente de district scolaire, une taxe de vente municipale (ville) ou une taxe de vente de la région métropolitaine. Il pourrait même y avoir différentes taxes de vente dans différentes parties d'une ville. Aux fins de ce défi, cependant, nous allons nous concentrer uniquement sur la taxe de vente d'État.
Étant donné un montant en dollars américains supérieur à zéro (précis à deux décimales près) et un état (le nom complet ou l'abréviation à deux lettres, votre choix, la casse n'a pas d'importance), et en utilisant le tableau ci-dessous des pourcentages de taxe de vente, produire la taxe de vente d'État correspondante qui doit être perçue pour cette vente particulière, précise et tronquée à deux décimales. Veuillez spécifier comment votre code gère l'arrondi.
Edit: l'abréviation de Washington a été incorrectement répertoriée comme WS au lieu de WA. Les réponses peuvent utiliser l'une ou l'autre abréviation, car c'était ma gaffe.
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%
Exemple pour la Californie à 6% de taxe de vente d'État -
CA
1025.00
61.50
Exemple pour le Minnesota à 6,875% -
MN
123.45
8.49
la source
Minnesota MN 6.875%
- parce que .005% est, en fait, beaucoup.Réponses:
Mathematica,
112103777666 octetsMathematica a une fonction intégrée pour tout
Prend un nom d'état (n'importe quel format; abréviation ou nom complet) et le montant en dollars.
Essayez-le sur Wolfram Sandbox
Usage
Explication
Interprétez l'entrée comme un nom d'État américain et générez un
Entity
.Obtenez le taux de taxe de vente.
Multipliez cela par la deuxième entrée.
Formatez le résultat en un nombre avec 9 chiffres à gauche de la décimale et 2 chiffres à droite.
la source
R ,
219212 octetsPrend l'état comme abréviation (toutes majuscules).
state.abb
correspond aux données R intégrées avec les abréviations d'état par ordre alphabétique, de sorte qu'il code en dur les taxes de vente, trouve l'index de l'État, calcule la taxe de vente et formate à 2 décimales (sortie sous forme de chaîne).Essayez-le en ligne!
la source
05AB1E , 134 octets
Essayez-le en ligne!
RIP Mathematica gagne.
Tout cela ne fait que comprimer les chaînes suivantes:
Et:
Utilise ensuite l'index de l'état d'entrée pour déterminer l'indice du taux, par défaut à 6, car il y a tellement d'états à 6%.
Pour les autres à consommer:
Notez que cela ne fonctionne que parce que j'ai ordonné les états de telle sorte qu'aucune intersection de 2 états ne crée un état différent EG (
OHIN
contient[OH,IN,HI]
alors queINOH
ne contient que[IN,OH]
)La plupart des idées pour cela sont venues de mon entrée précédente basée sur l'état .
la source
-d
drapeauPyth,
270258233219 octetsDoit être passé des paramètres comme ceci:
Explication:
Merci à @ Mr.Xcoder.
la source
*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
. Il utilise des chaînes compressées (celles qui commencent par."
).Z
était disponible. Merci encore ;-).Java (OpenJDK 8) ,
594 + 19592580575412 octetsEssayez-le en ligne!
la source
Arrays
asjava.util.Arrays
et en supprimant l'instruction d'importation. J'inclurais un lien TIO mais c'est trop long. : Pfinal
; changerdouble
pourfloat
; changerDouble.parseDouble
pournew Float
; et la modification(s,a)->
às->a->
l'aide curryfication. Voici le lien TIO pour voir comment.substring(3)
àsubstring(2)
: TIO 415 octets . C'est plus court que ma réponse Java ..;)Java 8,
486467309299290289 octets-19 octets grâce à @MagicOctopusUrn en supprimant les points-virgules.
Explication:
Essayez-le ici.
la source
HI;NY
etMT;NH
sont actuellement les seules choses dans votre code qui vous empêchent de supprimer tous les points-virgules. Inversez l'ordre des deux et cela fonctionnerait pour environ 20 octets enregistrés.7
à votre réponse (bien queTN
cela interfère avec l'ordre actuel de0
).INMSRITN 7.00
&AKDENHORMT 0.00
est possible sans entrer en conflit avec quoi que ce soit d'autre.Perl 6, 341 octets
Alors, hein. C'est assez artificiel, je suppose. Cela utilise les méta-opérateurs de Perl 6, comme
X=>
ici, qui estX
(produit croisé) combiné avec=>
.Cela signifie
<ME NE> X=> 5.5
(où<ME NE>
moyens('ME', 'NE')
) est=> 5.5
appliqué sur chaque élément du tableau, ce qui donneME => 5.5, NE => 5.5
. Les parenthèses ne sont là que pour la préséance ...En tant que golfeur (euh ...), je n'ai évidemment pas écrit celui-là à la main (sauf la fonction réelle). J'ai donc écrit un méta-golfeur pour générer la combinaison la plus efficace!
Il génère à la fois les
X=>
cas et le cas le plus simple (chacun étant énuméré), et j'ai choisi le plus court (le premier).la source
JavaScript (ES6),
227224 octetsPrend une entrée dans la syntaxe de curry
(s)(v)
où s est l'état et v est le montant. Utilise l'arrondi au sol.Démo
Afficher l'extrait de code
la source
Kotlin , 444 octets
Essayez-le en ligne!
Embellie
la source
Python 3 , 303 octets
Essayez-le en ligne!
Très simple: les données sont stockées sous forme de deux caractères + liste de chiffres: chaque pourcentage est inférieur à 10, donc elles peuvent être stockées en partie entière (1 chiffre) + partie décimale (0 -... chiffre (s)).
la source
C # ,
318309 octetsLes données
String
s
Abréviation à 2 lettres de l'état en majuscule.Double
v
la valeurString
La valeur de taxe à collecter arrondie à 2 décimalesGolfé
Non golfé
Non lisible non lisible
Code complet
Communiqués
318 bytes
- Solution initiale.- 9 bytes
- Changé l'.ToString("F2")
utilisé dans le premier retour aux chaînes interpolées.Remarques
la source
AWK , 277 octets
Essayez-le en ligne!
Un score respectable, mais loin de Mathematica. J'ai ajouté 2 octets en ayant une impression de nouvelle ligne après chaque vérification, mais je pense que c'est plus joli de cette façon :)
(J'espère qu'il est évident que l'entrée doit être l'abréviation de l'état et une valeur sur une ligne.)
la source