Máy tính thuế bán hàng nhà nước đơn giản


10

Thuế doanh thu ở Hoa Kỳ rất phức tạp, phải nói là ít nhất. Nói chung, có thuế bán hàng tiểu bang (có một số tiểu bang không thu thuế bán hàng tiểu bang), nhưng cũng có thể có thuế bán hàng của quận, thuế bán hàng của trường học, thuế bán hàng của thành phố (thành phố) hoặc thuế bán hàng khu vực đô thị. Thậm chí có thể có các loại thuế bán hàng khác nhau ở các khu vực khác nhau của thành phố. Tuy nhiên, với mục đích của thách thức này, chúng tôi sẽ chỉ tập trung vào thuế bán hàng của tiểu bang.

Cho số tiền đô la Mỹ lớn hơn 0 (chính xác đến hai chữ số thập phân) và trạng thái (tên đầy đủ hoặc viết tắt hai chữ cái, lựa chọn của bạn, trường hợp không quan trọng) và sử dụng biểu đồ tỷ lệ phần trăm thuế bán hàng dưới đây, xuất thuế doanh thu nhà nước tương ứng cần phải được thu cho lần bán cụ thể đó, chính xác và được rút ngắn đến hai chữ số thập phân. Vui lòng xác định cách mã của bạn xử lý làm tròn.

Chỉnh sửa: Chữ viết tắt của Washington được liệt kê không chính xác là WS thay vì WA. Câu trả lời có thể sử dụng hoặc viết tắt, vì đó là mục đích của tôi.

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%

Ví dụ cho California ở mức thuế doanh thu 6% của tiểu bang -

CA
1025.00

61.50

Ví dụ cho Minnesota ở mức 6.875% -

MN
123.45

8.49

14
inb4 Mathicala dựng sẵn.
James

Minnesota MN 6.875%- bởi vì 0,05% là, tốt, thực sự rất nhiều.
Bạch tuộc ma thuật Urn

1
À ... đúng rồi ... đây không phải là thuế thu nhập.
Bạch tuộc ma thuật Urn

2
@Shaggy Không, trường hợp không quan trọng.
admBorkBork

2
Pedantry: tên viết tắt của tiểu bang cho Washington là WA, không phải WS.
Michael Seifert

Câu trả lời:


15

Toán học, 112 103 77 76 66 byte

Mathematica có sẵn nội dung cho mọi thứ

NumberForm[Interpreter["USState"][#]@"StateSalesTaxRate"#2,{9,2}]&

Lấy tên tiểu bang (bất kỳ định dạng; tên viết tắt hoặc tên đầy đủ) và số tiền đô la.

Dùng thử trên Wolfram Sandbox

Sử dụng

f = NumberForm[Interpreter["USState"][#]@"StateSalesTaxRate"#2,{9,2}]&

 

f["CA", 1025.00]

61,50

f["miNnNesToA", 123.45]

8,49

Giải trình

Interpreter["USState"][#]

Giải thích đầu vào dưới dạng tên Tiểu bang Hoa Kỳ và tạo một Entity.

... @"StateSalesTaxRate"

Lấy thuế suất thuế bán hàng.

... #2

Nhân số đó với đầu vào thứ hai.

NumberForm[..., {9,2}]

Định dạng kết quả thành một số có 9 chữ số ở bên trái của số thập phân và 2 chữ số ở bên phải.


6
Toán học. Dĩ nhiên ...
Ven

8
Điều này bây giờ chỉ là ngớ ngẩn!
Xù xì

Tại sao bạn cần sử dụng API miễn là chuỗi để có được thuộc tính thứ 142?
Neil

11
Có một điểm phạm vi bán nghiêm trọng ở đây. Cho rằng Mathicala lấy dữ liệu từ thực của nó từ kho dữ liệu cập nhật liên tục, điều gì xảy ra khi thuế suất của một trạng thái cụ thể thay đổi? Không phải câu trả lời này sau đó trở nên không hợp lệ đối với thông số kỹ thuật được đưa ra trong câu hỏi?
ymbirtt


5

R , 219 212 byte

function(S,m)sprintf("%.2f",c(4,0,5.6,6.5,6,2.9,6.35,0,6,4,4,6,6.25,7,6,6.5,6,5,5.5,6,6.25,6,6.875,7,4.23,0,5.5,4.6,0,6.88,5.13,4,4.75,5,5.75,4.5,0,6,7,6,4.5,7,6.25,4.7,6,4.3,6.5,6,5,4)[match(S,state.abb)]*m/100)

Lấy trạng thái là viết tắt (tất cả các chữ hoa).

state.abb là dữ liệu R dựng sẵn với các chữ viết tắt trạng thái theo thứ tự bảng chữ cái, do đó, nó mã hóa thuế bán hàng, tìm chỉ số của trạng thái, tính thuế bán hàng và định dạng thành 2 chữ số thập phân (đầu ra dưới dạng chuỗi).

Hãy thử trực tuyến!


5

05AB1E , 134 byte

.•2=Šλ₁ÙH ’€9¿FîβïLT_s€¤Ôтαxì8ÜuK8º'DιÒ—pcλ¯øÒÔ\’þü€ŒβÞéΣŽZê•#.å1kUX0‹i6*т/ëX•Ž½ì∞в’±₃C¸wiα·¥žYÉúžĆƵ˜šŸ‰Ê‡†Σgλ&/ûjDĆв₆•hR„AB„ .‡#è*т/}

Hãy thử trực tuyến!


RIP Mathicala thắng.


Tất cả điều này không nén các chuỗi sau:

AKDEMTNHOR CO ALGANYHIWY MO VA SDOK NV UT NC LANDWI NM MENE AZ OH ILMATX CT ARKSWS MN NJ INMSRITN

Và:

0 2.9 4 4.23 4.3 4.5 4.6 4.7 4.75 5 5.13 5.5 5.6 5.75 6.25 6.35 6.5 6.875 6.88 7

Sau đó sử dụng chỉ mục của trạng thái đầu vào để xác định chỉ số của tỷ lệ, mặc định là 6, vì có rất nhiều trạng thái với 6%.


Để người khác tiêu thụ:

AKDEMTNHOR 0
CO         2.9
ALGANYHIWY 4
MO         4.23
VA         4.3
SDOK       4.5
NV         4.6
UT         4.7
NC         4.75
LANDWI     5
NM         5.13
MENE       5.5
AZ         5.6
OH         5.75
CAFLIDIAKYMDMIPASCVTWV 6
ILMATX     6.25
CT         6.35
ARKSWS     6.5
MN         6.875
NJ         6.88

Lưu ý rằng điều này chỉ hoạt động vì tôi đã ra lệnh cho các trạng thái sao cho không có giao điểm của 2 trạng thái tạo ra một trạng thái khác nhau ( OHINchứa [OH,IN,HI]trong khi INOHchỉ chứa [IN,OH])


Hầu hết các ý tưởng cho điều này đến từ mục nhập dựa trên nhà nước trước đây của tôi .


Liên kết TIO có -dcờ
H.PWiz

@ H.PWiz Đó là để hình dung ngăn xếp. Nếu bạn loại bỏ nó, bạn sẽ thấy đầu ra thường xuyên của chương trình.
Ông Xcoder

@ H.PWiz chỉ nhằm mục đích trực quan hóa, sử dụng lệnh này theo lệnh và cho phép bạn xem lý do chương trình hoạt động.
Bạch tuộc ma thuật Urn

Ah, tôi nghĩ rằng nó đã bị nhầm lẫn.
H.PWiz

3

Pyth, 270 258 233 219 byte

*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

Phải được thông qua như vậy:

1025
CA

Giải trình:

*c@[...)xc."..."2w100
          ."..."       Decompress the string
         c      2      Cut the string in chunks of size 2 (states abbreviations)
        x        w     Get the index of the second parameter in that string
  @[    )              Index into the tax array
 c                100  Generate a percentage
*                      Multiply that with the implicit input at the end
Alas, `.Z` makes this longer. Maybe there's a way to write the array more efficiently, by repeating the keys, but I havn't found one yet.

Cảm ơn @ Mr.Xcoder.




Tôi nghĩ rằng chỉ .Zcó sẵn. Cám ơn bạn một lần nữa ;-).
Ven

3

Java (OpenJDK 8) , 594 + 19 592 580 575 412 byte

s->a->{float[]r={0};java.util.Arrays.asList("AL4`AK0`AZ5.6`AR6.5`CA6`CO2.9`CT6.35`DE0`FL6`GA4`HI4`ID6`IL6.25`IN7`IA6`KS6.5`KY6`LA5`ME5.5`MD6`MA6.25`MI6`MN6.875`MS7`MO4.23`MT0`NE5.5`NV4.6`NH0`NJ6.88`NM5.13`NY4`NC4.75`ND5`OH5.75`OK4.5`OR0`PA6`RI7`SC6`SD4.5`TN7`TX6.25`UT4.7`VT6`VA4.3`WS6.5`WV6`WI5`WY4".split("`")).forEach(e->{if(e.contains(s))r[0]=a/100*new Float(e.substring(2));});return s.format("%.2f",r[0]);}

Hãy thử trực tuyến!


1
Bạn có thể tiết kiệm 9 byte bằng cách trực tiếp giải quyết Arraysnhư java.util.Arraysvà nhận được thoát khỏi câu lệnh import. Tôi muốn bao gồm một liên kết TIO nhưng nó quá dài. : P
hoàn toàn là

Bạn có thể lưu thêm một vài byte bằng cách loại bỏ final; đổi doublesang float; đổi Double.parseDoublesang new Float; và thay đổi (s,a)->đến s->a->bằng cách sử dụng currying. Đây là liên kết TIO để xem cách làm.
Kevin Cruijssen

1
Ồ, và bạn cũng có thể xóa tất cả dấu phẩy và dấu 0 và thay đổi substring(3)thành substring(2): TIO 415 byte . Nó ngắn hơn câu trả lời Java của tôi ..;)
Kevin Cruijssen

3

Java 8, 486 467 309 299 290 289 byte

s->a->{float r=6;for(String x:"AKDENHORMT0 CO2.9 ALGANYHIWY4 MO4.23 VA4.3 SDOK4.5 NV4.6 UT4.7 NC4.75 LANDWI5 NM5.13 MENE5.5 AZ5.6 OH5.75 ILMATX6.25 CT6.35 ARKSWS6.5 MN6.875 NJ6.88 MSRINTN7".split(" "))if(x.contains(s))r=new Float(x.replaceAll("[A-Z]",""));return s.format("%.2f",a*r/100);}

-19 byte nhờ @MagicOctopusUrn bằng cách xóa dấu chấm phẩy.

Giải trình:

Hãy thử nó ở đây.

s->a->                    // Method with String and float parameters and String return-type
  float r=6;              //  Float starting at 6 (most states had 6.00 as tax)
  for(String x:"...".split(" "))
                          //  Loop over all states + amounts
    if(x.contains(s))     //   If the input-state is found in String `x`:
      r=new Float(x.replaceAll("[A-Z]",""));
                          //    Set float `r` to the amount of this state
                          //  End of loop (implicit / single-line body)
  return s.format("%.2f", //  Return result rounded to 2 decimal points:
     a*r/100);            //   Float input multiplied by `r` divided by 100
}                         // End of method

1
Nếu bạn sử dụng thứ tự từ câu trả lời của tôi, bạn có thể xóa tất cả dấu chấm phẩy trong chuỗi của bạn.
Bạch tuộc ma thuật Urn

HI;NYMT;NHhiện tại là những điều duy nhất trong mã của bạn ngăn bạn xóa tất cả các dấu chấm phẩy. Đảo ngược thứ tự của cả hai và nó sẽ hoạt động trong khoảng 20 byte được lưu.
Bạch tuộc ma thuật Urn

1
@MagicOctopusUrn Cảm ơn, đã chỉnh sửa! Btw, bạn cũng có thể muốn thêm các trạng thái cho 7câu trả lời của mình (mặc dù TNkhông can thiệp vào thứ tự hiện tại 0).
Kevin Cruijssen

@MagicOctopusUrn INMSRITN 7.00& AKDENHORMT 0.00có thể mà không xung đột với bất cứ điều gì khác.
Kevin Cruijssen

2

Perl 6, 341 byte

my%a=((<ME NE>X=>5.5),CO=>2.9,MO=>4.23,MN=>6.875,NJ=>6.88,(<LA ND WI>X=>5),(<AK DE MT NH OR>X=>0),(<IN MS RI TN>X=>7),(<AR KS WS>X=>6.5),AZ=>5.6,(<AL GA HI NY WY>X=>4),VA=>4.3,UT=>4.7,(<IL MA TX>X=>6.25),(<CA FL ID IA KY MD MI PA SC VT WV>X=>6),(<OK SD>X=>4.5),NV=>4.6,NM=>5.13,CT=>6.35,OH=>5.75,NC=>4.75).flat;{round $^a*(%a{$^b}/100),0.01}

Vì vậy, huh. Điều này là khá giả, tôi đoán. Điều này sử dụng các toán tử meta của Perl 6, như X=>ở đây, là X(sản phẩm chéo) kết hợp với =>.

Điều đó có nghĩa là <ME NE> X=> 5.5(nơi <ME NE>có nghĩa là ('ME', 'NE')) được => 5.5áp dụng trên từng phần tử của mảng, mang lại ME => 5.5, NE => 5.5. Các dấu ngoặc đơn chỉ ở đây để ưu tiên ...


Là một người chơi gôn (erm ...), rõ ràng tôi đã không viết nó bằng tay (ngoại trừ chức năng thực tế). Vì vậy, tôi đã viết một meta-golfer để tạo ra sự kết hợp hiệu quả nhất!

my %values;
my %simple;
for lines() {
  my $abb = m/<[A .. Z]> ** 2/.Str;
  my $val = m/\d\.\d+/.Str;
  %values{$val}.push: $abb;
  %simple{$abb} = $val;
}

say "(", (join ',', do for %values.kv -> $key, @vals {
  my $int-key = +$key;
  if @vals > 1 {
    "(<{@vals}>X=>$int-key)"
  } else {
    "{@vals}=>$int-key"
  }
}), ").flat";

say();

say join ',', do for %simple.kv -> $key, $val {
  "$key=>" ~ +$val
}

Nó tạo ra cả X=>trường hợp và trường hợp đơn giản hơn (với mỗi trường hợp được liệt kê), và tôi đã chọn trường hợp ngắn nhất (trường hợp trước).


2

JavaScript (ES6), 227 224 byte

Đưa đầu vào theo cú pháp currying trong (s)(v)đó s là trạng thái và v là số lượng. Sử dụng làm tròn sàn.

s=>v=>(v*(p=s=>parseInt(s,36))('3344bk50k4mo28k4we4tm5eg3uw48s5az39i3js5b43yi3ny4fq3h03mk3bg'.substr(p('k039017k00038f00030022h00g000j00k600k080k707h30706800ba0030305ic0303303930460000e00d2'[p(s)*84%943%85])*3,3))/1e3|0)/100

Bản giới thiệu


1

Kotlin , 444 byte

val S="0|AK|DE|MT|NH|OR#2.9|CO#4|AL|GA|HI|NY|WY#4.23|MO#4.3|VA#4.5|OK|SD#4.6|NV#4.7|UT#4.75|NC#5|LA|ND|WI#5.13|NM#5.5|ME|NE#5.6|AZ#5.75|OH#6|CA|FL|ID|IA|KY|MD|MI|PA|SC|VT|WV#6.25|IL|MA|TX#6.35|CT#6.5|AR|KS|WS#6.875|MN#6.88|NJ#7|IN|MS|RI|TN"
fun c(t:String,d:Double){
val m=mutableMapOf<String,Double>()
S.split("#").map{val s=it.split("|")
for (item in s.subList(1, s.size))m.put(item, s[0].toDouble())}
System.out.printf("%.2f", m[t]!!*d*.01)}

Hãy thử trực tuyến!

Làm đẹp

// Tax rate followed by states with that rate separated by pipes, with hashes in between
val STATES="0|AK|DE|MT|NH|OR#2.9|CO#4|AL|GA|HI|NY|WY#4.23|MO#4.3|VA#4.5|OK|SD#4.6|NV#4.7|UT#4.75|NC#5|LA|ND|WI#5.13|NM#5.5|ME|NE#5.6|AZ#5.75|OH#6|CA|FL|ID|IA|KY|MD|MI|PA|SC|VT|WV#6.25|IL|MA|TX#6.35|CT#6.5|AR|KS|WS#6.875|MN#6.88|NJ#7|IN|MS|RI|TN"

fun function(targetState: String, amount: Double) {
    // Stores data
    val m = mutableMapOf<String, Double>()
    // For each rate
    STATES.split("#").map {
        // Split the data out
        val rateData = it.split("|")
        // For each state with that rate
        for (stateCode in rateData.subList(1, rateData.size)) {
            // Put it in the dataset
            m.put(stateCode, rateData[0].toDouble())
        }
    }

    // Print out the tax rate
    System.out.printf("%.2f", m[targetState]!! * amount * .01)
}

1

Python 3 , 303 byte

import re
t=re.split("(\d+)","AL4AK0AZ56AR65CA6CO29CT635DE0FL6GA4HI4ID6IL625IN7IA6KS65KY6LA5ME55MD6MA625MI6MN6875MS7MO423MT0NE55NV46NH0NJ688NM513NY4NC475ND5OH575OK45OR0PA6RI7SC6SD45TN7TX625UT47VT6VA43WS65WV6WI5WY4")
f=lambda s,a:"%.2f"%({t[i-1]:float(t[i])/10**-~len(t[i])for i in range(1,len(t),2)}[s]*a)

Hãy thử trực tuyến!

Rất đơn giản: dữ liệu được lưu trữ dữ liệu dưới dạng hai ký tự + danh sách các chữ số: mọi tỷ lệ phần trăm nhỏ hơn 10, do đó nó có thể được lưu trữ dưới dạng phần nguyên (1 chữ số) + phần thập phân (0 -... chữ số (s)).


1

C # , 318 309 byte


Dữ liệu

  • Đầu vào String s Chữ viết tắt 2 chữ cái của chữ hoa.
  • Đầu vào Double v Giá trị
  • Đầu ra String Giá trị thuế được thu thập được làm tròn đến 2 chữ số thập phân

Chơi gôn

(s,v)=>{for(int i=0;i<21;i++)if("NHAKDEMTOR,CO,ALHIGANYWY,MO,VA,SDOK,NV,UT,NC,NDLAWI,NM,MENE,AZ,OH,KYCAFLIDIAMDMIPASCVTWV,ILMATX,CT,ARKSWA,MN,NJ,MSINRITN".Split(',')[i].Contains(s))return $"{v*(new[]{0,2.9,4,4.23,4.3,4.5,4.6,4.7,4.75,5,5.13,5.5,5.6,5.75,6,6.25,6.35,6.5,6.875,6.88,7}[i]/100):F2}";return "";};

Ung dung

( s, v ) => {
    for( int i = 0; i < 21; i++ )
        if( "NHAKDEMTOR,CO,ALHIGANYWY,MO,VA,SDOK,NV,UT,NC,NDLAWI,NM,MENE,AZ,OH,KYCAFLIDIAMDMIPASCVTWV,ILMATX,CT,ARKSWA,MN,NJ,MSINRITN".Split( ',' )[ i ].Contains( s ) )
            return $"{v * ( new[] { 0, 2.9, 4, 4.23, 4.3, 4.5, 4.6, 4.7, 4.75, 5, 5.13, 5.5, 5.6, 5.75, 6, 6.25, 6.35, 6.5, 6.875, 6.88, 7 }[ i ] / 100 ):F2}";
    return "";
};

Ungolfed có thể đọc được

// Takes a 2 letter abbreviation state ( 's' ) and a value ( 'v' )
( s, v ) => {

    // Cycles through an array with the states grouped by tax value
    for( int i = 0; i < 21; i++ )

        // Checks if the state group at the current index contains the state 's'
        if( "NHAKDEMTOR,CO,ALHIGANYWY,MO,VA,SDOK,NV,UT,NC,NDLAWI,NM,MENE,AZ,OH,KYCAFLIDIAMDMIPASCVTWV,ILMATX,CT,ARKSWA,MN,NJ,MSINRITN".Split( ',' )[ i ].Contains( s ) )

            // Returns the value 'v' * the corresponding state percentage divided by 100
            return $"{v * ( new[] { 0, 2.9, 4, 4.23, 4.3, 4.5, 4.6, 4.7, 4.75, 5, 5.13, 5.5, 5.6, 5.75, 6, 6.25, 6.35, 6.5, 6.875, 6.88, 7 }[ i ] / 100 ):F2}";

    // If the state isn't found, return an empty string
    return "";
};

Mã đầy đủ

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TestBench {
    public static class Program {
        private static Func<String, Double, String> f = ( s, v ) => {
            for( int i = 0; i < 21; i++ )
                if( "NHAKDEMTOR,CO,ALHIGANYWY,MO,VA,SDOK,NV,UT,NC,NDLAWI,NM,MENE,AZ,OH,KYCAFLIDIAMDMIPASCVTWV,ILMATX,CT,ARKSWA,MN,NJ,MSINRITN".Split( ',' )[ i ].Contains( s ) )
                    return $"{v * ( new[] { 0, 2.9, 4, 4.23, 4.3, 4.5, 4.6, 4.7, 4.75, 5, 5.13, 5.5, 5.6, 5.75, 6, 6.25, 6.35, 6.5, 6.875, 6.88, 7 }[ i ] / 100 ):F2}";
            return "";
        };

        static void Main( string[] args ) {
            List<KeyValuePair<String, Double>>
                testCases = new List<KeyValuePair<String, Double>>() {
                    new KeyValuePair<String, Double>( "CA", 1025.0d ),
                    new KeyValuePair<String, Double>( "MN", 123.45d ),
                };

            foreach( KeyValuePair<String, Double> testCase in testCases ) {
                Console.WriteLine( $" STATE: {testCase.Key}\n VALUE: {testCase.Value}\nOUTPUT: {f( testCase.Key, testCase.Value )}\n" );
            }

            Console.ReadLine();
        }
    }
}

Phát hành

  • v1.0 - 318 bytes- Giải pháp ban đầu.
  • v1.1 - - 9 bytes- Đã thay đổi .ToString("F2")sử dụng trong lần trở lại đầu tiên thành chuỗi nội suy.

Ghi chú

  • không ai

0

AWK , 277 byte

{split("LANDWI 5 VA 4.3 IACAFLIDKYMDMIPASCVTWV 6 SDOK 4.5 MO 4.23 CO 2.9 NM 5.13 NV 4.6 UT 4.7 NJ 6.88 MENE 5.5 AZ 5.6 ARKSWA 6.5 MN 6.875 MSINRITN 7 ILMATX 6.25 NC 4.75 CT 6.35 ALGANYWYHI 4 OH 5.75 AKDEMTORNH 0",T)
for(i in T)if(T[i]~s=".*"$1".*")printf"%.2f\n",$2*T[i+1]*.01}

Hãy thử trực tuyến!

Một số điểm đáng nể, nhưng không nơi nào gần Mathematica. Tôi đã thêm 2 byte bằng cách in một dòng mới sau mỗi lần kiểm tra, nhưng tôi nghĩ nó đẹp hơn theo cách đó :)

(Hy vọng rằng rõ ràng đầu vào phải là chữ viết tắt trạng thái và giá trị trên một dòng.)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.