Los impuestos sobre las ventas en los Estados Unidos son complicados, por decir lo menos. En general, hay un impuesto estatal a las ventas (hay un puñado de estados que no recaudan un impuesto estatal a las ventas), pero también podría haber un impuesto a las ventas del condado, un impuesto a las ventas del distrito escolar, un impuesto a las ventas municipal (de la ciudad) o un impuesto de ventas del área metropolitana. Incluso podría haber diferentes impuestos sobre las ventas en diferentes partes de una ciudad. Para los propósitos de este desafío, sin embargo, nos enfocaremos solo en el impuesto estatal sobre las ventas.
Dada una cantidad en dólares estadounidenses mayor que cero (con una precisión de dos decimales) y un estado (ya sea el nombre completo o la abreviatura de dos letras, su elección, el caso no importa), y utilizando la siguiente tabla de porcentajes de impuestos sobre las ventas, generar el impuesto estatal sobre las ventas correspondiente que debe recaudarse para esa venta en particular, preciso y truncado a dos decimales. Especifique cómo maneja su código el redondeo.
Editar: La abreviatura de Washington aparece incorrectamente como WS en lugar de WA. Las respuestas pueden usar cualquiera de las abreviaturas, ya que esa fue mi tontería.
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%
Ejemplo para California con un impuesto estatal sobre las ventas del 6%:
CA
1025.00
61.50
Ejemplo para Minnesota en 6.875% -
MN
123.45
8.49
fuente
Minnesota MN 6.875%
- porque .005% es, bueno, en realidad mucho.Respuestas:
Mathematica,
112103777666 bytesMathematica tiene un incorporado para todo
Toma un nombre de estado (cualquier formato; abreviatura o nombre completo) y el monto en dólares.
Pruébalo en Wolfram Sandbox
Uso
Explicación
Interprete la entrada como un nombre de estado de EE. UU. Y genere un
Entity
.Obtenga la tasa de impuesto a las ventas.
Multiplique eso por la segunda entrada.
Formatee el resultado en un número con 9 dígitos a la izquierda del decimal y 2 dígitos a la derecha.
fuente
R ,
219212 bytesToma el estado como una abreviatura (mayúsculas).
state.abb
son los datos R incorporados con las abreviaturas de estado en orden alfabético, por lo que codifica los impuestos sobre las ventas, encuentra el índice del estado, calcula el impuesto sobre las ventas y los formatos a 2 decimales (salida como una cadena).Pruébalo en línea!
fuente
05AB1E , 134 bytes
Pruébalo en línea!
RIP Mathematica gana.
Todo lo que hace es comprimir las siguientes cadenas:
Y:
Luego usa el índice del estado de entrada para determinar el índice de la tasa, por defecto a 6, porque hay muchos estados con 6%.
Para que otros consuman:
Tenga en cuenta que esto solo funciona porque ordené los estados de manera que ninguna intersección de 2 estados cree un estado diferente EG (
OHIN
contiene,[OH,IN,HI]
mientras queINOH
solo contiene[IN,OH]
)La mayoría de las ideas para esto provienen de mi entrada anterior basada en el estado .
fuente
-d
banderaPyth,
270258233219 bytesDeben pasar parámetros como este:
Explicación:
Gracias a @ Mr.Xcoder.
fuente
*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
. Utiliza cadenas empaquetadas (las que comienzan con."
).Z
estaba disponible. Gracias de nuevo ;-).Java (OpenJDK 8) ,
594 + 19592580575412 bytesPruébalo en línea!
fuente
Arrays
comojava.util.Arrays
y deshaciéndose de la declaración de importación. Incluiría un enlace TIO pero es demasiado largo. : Pfinal
; cambiandodouble
afloat
; cambiandoDouble.parseDouble
anew Float
; y cambiando(s,a)->
as->a->
mediante el uso de curry. Aquí está el enlace TIO para ver cómo.substring(3)
asubstring(2)
: TIO 415 bytes . Eso es más corto que mi respuesta Java ...;)Java 8,
486467309299290289 bytes-19 bytes gracias a @MagicOctopusUrn al eliminar los puntos y comas.
Explicación:
Pruébalo aquí.
fuente
HI;NY
yMT;NH
actualmente son las únicas cosas en su código que le impiden eliminar todos los puntos y coma. Invierta el orden de ambos y funcionaría como 20 bytes guardados.7
su respuesta también (aunqueTN
interfiere con el orden actual de0
).INMSRITN 7.00
&AKDENHORMT 0.00
es posible sin entrar en conflicto con nada más.Perl 6, 341 bytes
Entonces, eh. Esto es bastante artificial, supongo. Utiliza los metaoperadores de Perl 6, como
X=>
aquí, que esX
(producto cruzado) combinado con=>
.Eso significa que
<ME NE> X=> 5.5
(donde<ME NE>
significa('ME', 'NE')
) se=> 5.5
aplica en cada elemento de la matriz, lo que produceME => 5.5, NE => 5.5
. Los paréntesis son simplemente aquí por precedencia ...Como golfista (erm ...), obviamente no escribí eso a mano (excepto la función real). ¡Entonces escribí un meta-golfista para generar la combinación más eficiente!
Genera tanto los
X=>
casos como el caso más simple (con cada uno enumerado), y elegí el más corto (el primero).fuente
JavaScript (ES6),
227224 bytesToma entrada en la sintaxis de curry
(s)(v)
donde s es el estado y v es la cantidad. Utiliza redondeo de piso.Manifestación
Mostrar fragmento de código
fuente
Kotlin , 444 bytes
Pruébalo en línea!
Embellecido
fuente
Python 3 , 303 bytes
Pruébalo en línea!
Muy simple: los datos se almacenan como dos caracteres + lista de dígitos: cada porcentaje es inferior a 10, por lo que se puede almacenar como parte entera (1 dígito) + parte decimal (0 -... dígito (s)).
fuente
C # ,
318309bytesDatos
String
s
La abreviatura de 2 letras del estado en mayúscula.Double
v
el valorString
El valor impositivo a cobrar redondeado a 2 decimalesGolfed
Sin golf
Legible sin golf
Código completo
Lanzamientos
318 bytes
- Solución inicial.- 9 bytes
- Cambió el.ToString("F2")
usado en el primer retorno a cadenas interpoladas.Notas
fuente
AWK , 277 bytes
Pruébalo en línea!
Una puntuación respetable, pero nada cerca de Mathematica. Agregué 2 bytes al imprimir una nueva línea después de cada verificación, pero creo que es más bonito de esa manera :)
(Con suerte, es obvio que la entrada debe ser la abreviatura del estado y un valor en una línea).
fuente