Pajak penjualan di Amerika Serikat rumit, untuk sedikitnya. Secara umum, ada pajak penjualan negara bagian (ada beberapa negara bagian yang tidak memungut pajak penjualan negara bagian), tetapi bisa juga ada pajak penjualan daerah, pajak penjualan distrik sekolah, pajak penjualan kota, atau pajak penjualan pajak penjualan area metropolitan. Bahkan mungkin ada pajak penjualan yang berbeda di berbagai bagian kota. Namun, untuk keperluan tantangan ini, kita akan fokus hanya pada pajak penjualan negara bagian.
Diberikan jumlah dolar AS lebih besar dari nol (akurat ke dua tempat desimal) dan negara (baik nama lengkap atau singkatan dua huruf, pilihan Anda, kasing tidak masalah), dan menggunakan grafik persentase pajak penjualan di bawah ini, mengeluarkan pajak penjualan negara bagian terkait yang harus dikumpulkan untuk penjualan tertentu, akurat dan dipotong ke dua tempat desimal. Silakan tentukan bagaimana kode Anda menangani pembulatan.
Sunting: Singkatan untuk Washington salah terdaftar sebagai WS, bukan WA. Jawaban dapat menggunakan singkatan, karena itu adalah kesalahan saya.
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%
Contoh untuk California dengan pajak penjualan negara bagian 6% -
CA
1025.00
61.50
Contoh untuk Minnesota pada 6,875% -
MN
123.45
8.49
sumber
Minnesota MN 6.875%
- Karena 0,005%, yah, sebenarnya banyak.Jawaban:
Mathematica,
112103777666 byteMathematica memiliki dasar untuk segalanya
Mengambil nama negara (format apa pun; singkatan atau nama lengkap) dan jumlah dolar.
Cobalah di Wolfram Sandbox
Pemakaian
Penjelasan
Menafsirkan input sebagai nama Negara AS dan menghasilkan
Entity
.Dapatkan tarif pajak penjualan.
Lipat gandakan dengan input kedua.
Format hasilnya menjadi angka dengan 9 digit di kiri desimal dan 2 digit di kanan.
sumber
R ,
219212 byteMengambil status sebagai singkatan (semua huruf besar).
state.abb
adalah data R bawaan dengan singkatan negara dalam urutan abjad, sehingga hardcode pajak penjualan, menemukan indeks negara, menghitung pajak penjualan, dan format ke 2 tempat desimal (output sebagai string).Cobalah online!
sumber
05AB1E , 134 byte
Cobalah online!
RIP Mathematica menang.
Semua ini dilakukan adalah kompres string berikut:
Dan:
Kemudian gunakan indeks negara input untuk menentukan indeks tingkat, default ke 6, karena ada begitu banyak negara dengan 6%.
Untuk dikonsumsi orang lain:
Catatan ini hanya berfungsi karena saya memerintahkan negara-negara sehingga tidak ada persimpangan 2 negara menciptakan keadaan yang berbeda EG (
OHIN
berisi[OH,IN,HI]
sedangkanINOH
hanya berisi[IN,OH]
)Sebagian besar ide untuk ini berasal dari entri berbasis negara saya sebelumnya .
sumber
-d
benderaPyth,
270258233219 byteHarus lulus parameter seperti ini:
Penjelasan:
Terima kasih kepada @ Mr.Xcoder.
sumber
*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
. Ini menggunakan string dikemas (yang dimulai dengan."
).Z
tersedia. Terima kasih lagi ;-).Java (OpenJDK 8) ,
594 + 19592580575412 byteCobalah online!
sumber
Arrays
sebagaijava.util.Arrays
dan menghilangkan pernyataan impor. Saya akan menyertakan tautan TIO tetapi terlalu panjang. : Pfinal
; berubahdouble
menjadifloat
; berubahDouble.parseDouble
menjadinew Float
; dan mengubah(s,a)->
kes->a->
dengan menggunakan kari. Inilah tautan TIO untuk melihat caranya.substring(3)
kesubstring(2)
: TIO 415 byte . Itu lebih pendek dari jawaban Java saya ..;)Java 8,
486467309299290289 byte-19 byte terima kasih kepada @MagicOctopusUrn dengan menghapus titik koma.
Penjelasan:
Coba di sini.
sumber
HI;NY
danMT;NH
saat ini satu-satunya hal dalam kode Anda yang menghentikan Anda menghapus semua tanda titik koma. Membalik urutan keduanya dan itu akan berhasil seperti 20 byte yang disimpan.7
jawaban Anda juga (meskipunTN
tidak mengganggu urutan saat ini0
).INMSRITN 7.00
&AKDENHORMT 0.00
dimungkinkan tanpa bertentangan dengan hal lain.Perl 6, 341 byte
Jadi ya Kurasa ini dibuat-buat. Ini menggunakan meta-operator Perl 6, seperti di
X=>
sini, yang merupakanX
(lintas produk) dikombinasikan dengan=>
.Itu berarti
<ME NE> X=> 5.5
(di mana<ME NE>
cara('ME', 'NE')
)=> 5.5
diterapkan pada setiap elemen array, menghasilkanME => 5.5, NE => 5.5
. Tanda kurung di sini hanya untuk diutamakan ...Sebagai pegolf (erm ...), saya jelas tidak menulis itu dengan tangan (kecuali fungsi sebenarnya). Jadi saya menulis meta-pegolf untuk menghasilkan kombinasi yang paling efisien!
Ini menghasilkan kedua
X=>
kasus dan kasus yang lebih sederhana (dengan masing-masing disebutkan), dan saya memilih yang terpendek (yang pertama).sumber
JavaScript (ES6),
227224 byteMengambil input dalam sintaks currying di
(s)(v)
mana s adalah status dan v adalah jumlah. Menggunakan pembulatan lantai.Demo
Tampilkan cuplikan kode
sumber
Kotlin , 444 byte
Cobalah online!
Yg diperindahkan
sumber
Python 3 , 303 byte
Cobalah online!
Sangat sederhana: data disimpan sebagai dua karakter + daftar digit: setiap persentase kurang dari 10, sehingga dapat disimpan sebagai bagian integer (1 digit) + bagian desimal (0 -... digit)
sumber
C # ,
318309 byteData
String
s
singkatan 2 huruf dari huruf besar negara.Double
v
nilaiString
Nilai pajak yang harus dikumpulkan dibulatkan menjadi 2 tempat desimalGolf
Tidak disatukan
Tidak terbaca dibaca
Kode lengkap
Rilis
318 bytes
- Solusi awal.- 9 bytes
- Mengubah yang.ToString("F2")
digunakan dalam kembalinya pertama ke string interpolasi.Catatan
sumber
AWK , 277 byte
Cobalah online!
Skor yang terhormat, tapi tidak jauh dari Mathematica. Saya memang menambahkan 2 byte dengan memiliki cetakan baris baru setelah setiap pemeriksaan, tapi saya pikir itu lebih cantik seperti itu :)
(Semoga jelas bahwa input harus menjadi singkatan negara dan nilai pada satu baris.)
sumber