सरल राज्य बिक्री कर कैलकुलेटर


10

संयुक्त राज्य अमेरिका में बिक्री कर कम से कम कहने के लिए जटिल हैं। आम तौर पर, एक राज्य बिक्री कर होता है (कुछ मुट्ठी भर राज्य हैं जो राज्य बिक्री कर जमा नहीं करते हैं), लेकिन एक काउंटी बिक्री कर, एक स्कूल जिला बिक्री कर, एक नगरपालिका (शहर) बिक्री कर या एक शहर भी हो सकता है। महानगरीय क्षेत्र बिक्री कर। एक शहर के विभिन्न हिस्सों में अलग-अलग बिक्री कर भी हो सकते हैं। इस चुनौती के प्रयोजनों के लिए, हालांकि, हम सिर्फ राज्य बिक्री कर पर ध्यान केंद्रित करने जा रहे हैं।

एक अमेरिकी डॉलर की राशि शून्य से अधिक (दो दशमलव स्थानों के लिए सटीक) और एक राज्य (पूर्ण नाम या दो अक्षर का संक्षिप्त नाम, आपकी पसंद, मामला कोई फर्क नहीं पड़ता) और बिक्री कर प्रतिशत के नीचे चार्ट का उपयोग करके दिया गया उस विशेष बिक्री के लिए एकत्र होने के लिए आवश्यक राज्य बिक्री कर का उत्पादन, दो दशमलव स्थानों के लिए सटीक और काट दिया गया। कृपया निर्दिष्ट करें कि आपका कोड गोलाई को कैसे संभालता है।

संपादित करें: वाशिंगटन के संक्षिप्त नाम को WA के बजाय WS के रूप में गलत तरीके से सूचीबद्ध किया गया था। उत्तर या तो संक्षिप्त नाम का उपयोग कर सकते हैं, क्योंकि यह मेरा नासमझ था।

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%

कैलिफोर्निया में 6% राज्य बिक्री कर के लिए उदाहरण -

CA
1025.00

61.50

मिनेसोटा का उदाहरण 6.875% -

MN
123.45

8.49

14
inb4 मैथमेटिका बिलियन।
जेम्स

Minnesota MN 6.875%- क्योंकि .005% वास्तव में बहुत कुछ है।
मैजिक ऑक्टोपस Urn

1
आह ... सही है ... यह आयकर नहीं है।
मैजिक ऑक्टोपस Urn

2
@ झंझट नहीं, मामला मायने नहीं रखता।
AdmBorkBork

2
पैदल सेना: वाशिंगटन के लिए राज्य का संक्षिप्त नाम डब्ल्यूए है, डब्ल्यूएस नहीं।
माइकल सेफर्ट

जवाबों:


15

गणितज्ञ, 112 103 77 76 66 बाइट्स

गणितज्ञ के पास हर चीज के लिए एक बेसिन होता है

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

एक राज्य का नाम (किसी भी प्रारूप; संक्षिप्त नाम या पूरा नाम) और डॉलर की राशि लेता है।

इसे वुल्फ्राम सैंडबॉक्स पर आज़माएं

प्रयोग

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

 

f["CA", 1025.00]

61.50

f["miNnNesToA", 123.45]

8.49

व्याख्या

Interpreter["USState"][#]

यूएस स्टेट नाम के रूप में इनपुट की व्याख्या करें और एक उत्पन्न करें Entity

... @"StateSalesTaxRate"

बिक्री कर की दर प्राप्त करें।

... #2

दूसरे इनपुट द्वारा गुणा करें।

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

दशमलव के बाईं ओर 9 अंकों और दाईं ओर 2 अंकों के साथ एक संख्या में परिणाम को प्रारूपित करें।


6
मेथेमेटिका। बेशक ...
वेन

8
यह अभी मूर्खतापूर्ण हो रहा है!
झबरा

142 वीं संपत्ति प्राप्त करने के लिए आपको स्ट्रिंग के रूप में लंबे समय तक एपीआई का उपयोग करने की आवश्यकता क्यों है?
नील

11
यहाँ एक अर्ध-गंभीर पांडित्य बिंदु है। यह देखते हुए कि गणितज्ञ अपने वास्तविक शब्द डेटा को लगातार अद्यतन किए जा रहे डेटास्टोर से प्राप्त करता है, तब क्या होता है जब किसी विशेष राज्य की कर दर बदल जाती है? क्या यह उत्तर प्रश्न में दिए गए युक्ति के संबंध में अमान्य नहीं है?
यम्बर्ट


5

आर , 219 212 बाइट्स

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)

राज्य को एक संक्षिप्त नाम (सभी कैप्स) के रूप में लेता है।

state.abb अंतर्निहित आर डेटा वर्णमाला क्रम में राज्य के संक्षिप्त विवरण के साथ है, इसलिए यह बिक्री कर को हार्डकोड करता है, राज्य के सूचकांक को पाता है, बिक्री कर की गणना करता है, और 2 दशमलव स्थानों पर प्रारूप (एक स्ट्रिंग के रूप में आउटपुट)।

इसे ऑनलाइन आज़माएं!


5

05AB1E , 134 बाइट्स

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

इसे ऑनलाइन आज़माएं!


RIP गणितज्ञ जीत जाता है।


यह सब निम्न स्ट्रिंग्स को संपीड़ित करता है:

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

तथा:

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

फिर दर के सूचकांक को निर्धारित करने के लिए इनपुट राज्य के सूचकांक का उपयोग करता है, 6 के लिए डिफ़ॉल्ट, क्योंकि 6% के साथ बहुत सारे राज्य हैं।


दूसरों के लिए उपभोग करने के लिए:

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

ध्यान दें कि यह केवल काम करता है क्योंकि मैं इस तरह कहा गया है कि 2 राज्यों में से कोई चौराहे एक अलग राज्य ईजी (बनाता आदेश दिया OHINहोता [OH,IN,HI], जबकि INOHकेवल शामिल [IN,OH])


इसके लिए अधिकांश विचार मेरी पिछली राज्य-आधारित प्रविष्टि से आए थे ।


TIO लिंक में -dझंडा है
H.PWiz

@ H.PWiz यह स्टैक को देखने के लिए है। यदि आप इसे हटाते हैं, तो आप प्रोग्राम का नियमित आउटपुट देखेंगे।
मिस्टर एक्सकोडर 14

@ H.PWiz यह केवल विज़ुअलाइज़ेशन उद्देश्यों के लिए है, इसे कमांड-बाय-कमांड लेता है और आपको यह देखने देता है कि प्रोग्राम क्यों काम करता है।
मैजिक ऑक्टोपस Urn

आह, मैंने सोचा कि यह गलती से छोड़ दिया गया था।
H.PWiz 14

3

पायथ, 270 258 233 219 बाइट्स

*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

इस तरह पैरामीटर पारित किया जाना चाहिए:

1025
CA

स्पष्टीकरण:

*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.

@ Mr.Xcoder को धन्यवाद।



1
195 अक्षर, 219 बाइट्स *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:। यह पैक्ड स्ट्रिंग्स (जिनका उपयोग शुरू होता है .") का उपयोग करता है
श्री एक्सकोडर

मुझे लगा कि केवल .Zउपलब्ध है। फिर से धन्यवाद ;-)।
शुक्र

3

जावा (ओपनजेडके 8) , 594 + 19 592 580 575 412 बाइट्स

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]);}

इसे ऑनलाइन आज़माएं!


1
आप सीधे संबोधित करके 9 बाइट्स बचा सकता है Arraysके रूप में java.util.Arraysऔर आयात बयान से छुटकारा मिल रहा है। मैं एक TIO लिंक शामिल करूंगा, लेकिन यह बहुत लंबा है। : पी
बिलकुल अमानवीय

आप हटाकर कुछ और बाइट्स बचा सकते हैं final; बदल रहा doubleहै float; बदल रहा Double.parseDoubleहै new Float; और करी का उपयोग करके बदल रहा (s,a)->है s->a->यहाँ कैसे देखने के लिए TIO- लिंक है।
केविन क्रूज़सेन

1
ओह, और आप सभी कॉमा और ट्रेलिंग जीरो को भी हटा सकते हैं और बदल substring(3)सकते हैं substring(2): TIO 415 बाइट्स । यह मेरे जावा उत्तर से कम है ..;)
केविन क्रूज़सेन

3

जावा 8, 486 467 309 299 290 289 बाइट्स

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 बाइट्स अर्धविराम हटाकर @MagicOctopusUrn को धन्यवाद ।

स्पष्टीकरण:

इसे यहाँ आज़माएँ।

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
यदि आप मेरे उत्तर से आदेश का उपयोग करते हैं तो आप अपने स्ट्रिंग्स में सभी अर्धविराम हटा सकते हैं।
मैजिक ऑक्टोपस Urn

HI;NYऔर MT;NHवर्तमान में आपके कोड में केवल वही चीजें हैं जो आपको सभी अर्ध-कॉलोनों को हटाने से रोकती हैं। दोनों के क्रम को उल्टा करें और यह 20 बाइट्स की तरह काम करेगा जो सहेजे गए हैं।
मैजिक ऑक्टोपस Urn

1
@MagicOctopusUrn धन्यवाद, संपादित! Btw, आप 7अपने उत्तर के लिए राज्यों को भी जोड़ना चाह सकते हैं (हालांकि TNवर्तमान आदेश के साथ हस्तक्षेप करता है 0)।
केविन क्रूज़सेन

@MagicOctopusUrn INMSRITN 7.00और AKDENHORMT 0.00कुछ और के साथ संघर्ष के बिना संभव है।
केविन क्रूज़सेन

2

पर्ल 6, 341 बाइट्स

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}

तो, हुह। मुझे लगता है कि यह बहुत विपरीत है। यह पर्ल 6 के मेटा-ऑपरेटरों का उपयोग करता है, जैसे X=>यहां, जो X(क्रॉस उत्पाद) के साथ संयुक्त है =>

इसका मतलब है <ME NE> X=> 5.5(जहाँ का <ME NE>अर्थ है ('ME', 'NE')) => 5.5सरणी के प्रत्येक तत्व पर लागू होता है, उपज ME => 5.5, NE => 5.5। कोष्ठक यहाँ केवल पूर्वता के लिए हैं ...


एक गोल्फर (erm ...) के रूप में, मैंने स्पष्ट रूप से उस एक को हाथ से नहीं लिखा था (वास्तविक कार्य को छोड़कर)। इसलिए मैंने सबसे कुशल संयोजन उत्पन्न करने के लिए एक मेटा-गोल्फर लिखा!

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
}

यह दोनों X=>मामलों और अधिक सरल मामले (प्रत्येक के साथ प्रगणित) उत्पन्न करता है , और मैंने सबसे छोटा (पूर्व) चुना।


2

जावास्क्रिप्ट (ईएस 6), 227 224 बाइट्स

Currying वाक्य रचना में इनपुट लेता है (s)(v)जहां रों राज्य और है v राशि है। फर्श गोलाई का उपयोग करता है।

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

डेमो


1

कोटलिन , 444 बाइट्स

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)}

इसे ऑनलाइन आज़माएं!

सजा हुआ

// 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

पायथन 3 , 303 बाइट्स

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)

इसे ऑनलाइन आज़माएं!

बहुत सरल: डेटा को डेटा को दो वर्णों + अंकों की सूची के रूप में संग्रहीत किया जाता है: प्रत्येक प्रतिशत 10 से कम है, इस प्रकार इसे पूर्णांक भाग (1 अंक) + दशमलव भाग (0 -... अंक (s)) के रूप में संग्रहीत किया जा सकता है।


1

सी # , 318 309 बाइट्स


डेटा

  • इनपुट String s राज्य अपरकेस के 2 अक्षर संक्षिप्त नाम।
  • इनपुट Double v मान
  • आउटपुट String कर का मूल्य 2 दशमलव स्थानों पर एकत्रित किया जाना चाहिए

golfed

(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

( 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 "";
};

पढ़ने योग्य अनगढ़

// 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 "";
};

पूर्ण कोड

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();
        }
    }
}

विज्ञप्ति

  • v1.0 - 318 bytes- प्रारंभिक समाधान।
  • v1.1 - - 9 bytes- .ToString("F2")पहले वापसी में प्रयुक्त परिवर्तन को बदले हुए तारों में बदल दिया ।

टिप्पणियाँ

  • कोई नहीं

0

AWK , 277 बाइट्स

{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}

इसे ऑनलाइन आज़माएं!

एक सम्मानजनक स्कोर, लेकिन कहीं भी गणितज्ञ के पास नहीं। मैंने प्रत्येक जाँच के बाद एक नया लाइन प्रिंट करके 2 बाइट्स जोड़े, लेकिन मुझे लगता है कि यह इस तरह से सुंदर है :)

(उम्मीद है कि यह स्पष्ट है कि इनपुट एक लाइन पर राज्य का संक्षिप्त नाम और एक मूल्य होना चाहिए।)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.