कार्डिनल्स और ऑर्डिनल्स, 1 से 100


28

यहां आपकी संपीड़न मांसपेशियों को खींचने के लिए एक सरल है। आपका कोड (एक पूरा कार्यक्रम) 1 से 100 तक सभी कार्डिनल संख्याओं के वर्तनी-आउट अंग्रेजी प्रतिनिधित्व का उत्पादन करना चाहिए, और फिर 1 से 100 तक सभी क्रमिक संख्याओं का होना चाहिए। प्रत्येक सूची में अंकों को अल्पविराम और रिक्त स्थान द्वारा और ठीक से सीमांकित किया जाना चाहिए। हाइफ़न। प्रत्येक सूची को एक एकल पूंजी पत्र से शुरू होना चाहिए और एक अवधि के साथ समाप्त होना चाहिए। दो सूचियों को एक नई रेखा से अलग किया जाना चाहिए।

स्पष्टता के लिए, आपको इस सटीक बाइट स्ट्रीम का उत्पादन करना होगा:

One, two, three, four, five, six, seven, eight, nine, ten, eleven, twelve, thirteen, fourteen, fifteen, sixteen, seventeen, eighteen, nineteen, twenty, twenty-one, twenty-two, twenty-three, twenty-four, twenty-five, twenty-six, twenty-seven, twenty-eight, twenty-nine, thirty, thirty-one, thirty-two, thirty-three, thirty-four, thirty-five, thirty-six, thirty-seven, thirty-eight, thirty-nine, forty, forty-one, forty-two, forty-three, forty-four, forty-five, forty-six, forty-seven, forty-eight, forty-nine, fifty, fifty-one, fifty-two, fifty-three, fifty-four, fifty-five, fifty-six, fifty-seven, fifty-eight, fifty-nine, sixty, sixty-one, sixty-two, sixty-three, sixty-four, sixty-five, sixty-six, sixty-seven, sixty-eight, sixty-nine, seventy, seventy-one, seventy-two, seventy-three, seventy-four, seventy-five, seventy-six, seventy-seven, seventy-eight, seventy-nine, eighty, eighty-one, eighty-two, eighty-three, eighty-four, eighty-five, eighty-six, eighty-seven, eighty-eight, eighty-nine, ninety, ninety-one, ninety-two, ninety-three, ninety-four, ninety-five, ninety-six, ninety-seven, ninety-eight, ninety-nine, one hundred.
First, second, third, fourth, fifth, sixth, seventh, eighth, ninth, tenth, eleventh, twelfth, thirteenth, fourteenth, fifteenth, sixteenth, seventeenth, eighteenth, nineteenth, twentieth, twenty-first, twenty-second, twenty-third, twenty-fourth, twenty-fifth, twenty-sixth, twenty-seventh, twenty-eighth, twenty-ninth, thirtieth, thirty-first, thirty-second, thirty-third, thirty-fourth, thirty-fifth, thirty-sixth, thirty-seventh, thirty-eighth, thirty-ninth, fortieth, forty-first, forty-second, forty-third, forty-fourth, forty-fifth, forty-sixth, forty-seventh, forty-eighth, forty-ninth, fiftieth, fifty-first, fifty-second, fifty-third, fifty-fourth, fifty-fifth, fifty-sixth, fifty-seventh, fifty-eighth, fifty-ninth, sixtieth, sixty-first, sixty-second, sixty-third, sixty-fourth, sixty-fifth, sixty-sixth, sixty-seventh, sixty-eighth, sixty-ninth, seventieth, seventy-first, seventy-second, seventy-third, seventy-fourth, seventy-fifth, seventy-sixth, seventy-seventh, seventy-eighth, seventy-ninth, eightieth, eighty-first, eighty-second, eighty-third, eighty-fourth, eighty-fifth, eighty-sixth, eighty-seventh, eighty-eighth, eighty-ninth, ninetieth, ninety-first, ninety-second, ninety-third, ninety-fourth, ninety-fifth, ninety-sixth, ninety-seventh, ninety-eighth, ninety-ninth, one hundredth.

यह कोड गोल्फ है, बाइट्स जीत में सबसे छोटा जवाब है।

जवाबों:


28

आम लिस्प, 88 82 80 बाइट्स

(format t"~@(~{~R~^, ~}~).
~:*~@(~{~:R~^, ~}~)."(loop as i to 99 collect(1+ i)))

(यह भाषा का हिस्सा है, मुझे आशा है कि आप बुरा नहीं मानते)

उत्पादन

One, two, three, four, five, six, seven, eight, nine, ten, eleven, twelve, thirteen, fourteen, fifteen, sixteen, seventeen, eighteen, nineteen, twenty, twenty-one, twenty-two, twenty-three, twenty-four, twenty-five, twenty-six, twenty-seven, twenty-eight, twenty-nine, thirty, thirty-one, thirty-two, thirty-three, thirty-four, thirty-five, thirty-six, thirty-seven, thirty-eight, thirty-nine, forty, forty-one, forty-two, forty-three, forty-four, forty-five, forty-six, forty-seven, forty-eight, forty-nine, fifty, fifty-one, fifty-two, fifty-three, fifty-four, fifty-five, fifty-six, fifty-seven, fifty-eight, fifty-nine, sixty, sixty-one, sixty-two, sixty-three, sixty-four, sixty-five, sixty-six, sixty-seven, sixty-eight, sixty-nine, seventy, seventy-one, seventy-two, seventy-three, seventy-four, seventy-five, seventy-six, seventy-seven, seventy-eight, seventy-nine, eighty, eighty-one, eighty-two, eighty-three, eighty-four, eighty-five, eighty-six, eighty-seven, eighty-eight, eighty-nine, ninety, ninety-one, ninety-two, ninety-three, ninety-four, ninety-five, ninety-six, ninety-seven, ninety-eight, ninety-nine, one hundred.
First, second, third, fourth, fifth, sixth, seventh, eighth, ninth, tenth, eleventh, twelfth, thirteenth, fourteenth, fifteenth, sixteenth, seventeenth, eighteenth, nineteenth, twentieth, twenty-first, twenty-second, twenty-third, twenty-fourth, twenty-fifth, twenty-sixth, twenty-seventh, twenty-eighth, twenty-ninth, thirtieth, thirty-first, thirty-second, thirty-third, thirty-fourth, thirty-fifth, thirty-sixth, thirty-seventh, thirty-eighth, thirty-ninth, fortieth, forty-first, forty-second, forty-third, forty-fourth, forty-fifth, forty-sixth, forty-seventh, forty-eighth, forty-ninth, fiftieth, fifty-first, fifty-second, fifty-third, fifty-fourth, fifty-fifth, fifty-sixth, fifty-seventh, fifty-eighth, fifty-ninth, sixtieth, sixty-first, sixty-second, sixty-third, sixty-fourth, sixty-fifth, sixty-sixth, sixty-seventh, sixty-eighth, sixty-ninth, seventieth, seventy-first, seventy-second, seventy-third, seventy-fourth, seventy-fifth, seventy-sixth, seventy-seventh, seventy-eighth, seventy-ninth, eightieth, eighty-first, eighty-second, eighty-third, eighty-fourth, eighty-fifth, eighty-sixth, eighty-seventh, eighty-eighth, eighty-ninth, ninetieth, ninety-first, ninety-second, ninety-third, ninety-fourth, ninety-fifth, ninety-sixth, ninety-seventh, ninety-eighth, ninety-ninth, one hundredth.

स्पष्टीकरण

चरित्र धाराओं के लिए प्रारूपित आउटपुट देखें ।

  • (format t "<control string>" <arguments>)(स्ट्रिंग) तर्क के अनुसार नियंत्रण स्ट्रिंग को प्रारूपित करता है और मानक आउटपुट को प्रिंट करता है (क्योंकि t)

  • (loop ...) 1 से 100 तक पूर्णांकों की सूची बनाता है

  • ~@( ... ~) आंतरिक नियंत्रण स्ट्रिंग द्वारा लौटाई गई स्ट्रिंग को कैपिटल करता है
  • ~{ ... ~} वर्तमान तर्क पर पुनरावृत्ति करता है और प्रत्येक तत्व के आंतरिक स्वरूपण को लागू करता है
  • पुनरावृति के अंदर, वह सब कुछ जो अंतिम चलना पर मुद्रित नहीं होता ~^है : इसका उपयोग तत्वों के बीच अल्पविराम-विभाजक को जोड़ने के लिए किया जाता है ।
  • ~R एक कार्डिनल के रूप में वर्तमान तर्क को आउटपुट करता है
  • ~:R वर्तमान तर्क को एक अध्यादेश के रूप में प्रस्तुत करता है
  • ~% एक नई लाइन का उत्पादन करता है
  • ~:*वर्तमान तर्क को पिछले एक के रूप में संसाधित करने के लिए रीसेट करें , जिसका उपयोग यहां दूसरी बार पूर्णांकों की सूची का पुन: उपयोग करने के लिए किया जाता है।

PrzemysławP के लिए धन्यवाद 2 बाइट्स सहेजे गए।


1
और मुझे लगा कि मेरा 340-बाइट का जवाब प्रभावशाली था ...
kirbyfan64sos

3
इस समय आपका रेप १३३ is सुंदर है! : डी सो, दुर्भाग्य से, मैं इस समाधान को आगे नहीं बढ़ा सकता ... :(
न्यूमीरी कहते हैं, मोनिका

2
@Numeri अब आप उत्थान कर सकते हैं। ;)
डीएलओसी

1
इनपुट के कोलोमोगोरोव जटिलता से कम समाधान हमेशा बहुत प्रभावशाली होते हैं! बहुत बढ़िया।
isaacg

1
@DLosc यह मेरे लिए तोड़ने के लिए अच्छा था ...: डी
नुमरी का कहना है कि मोनिका

9

पायथ, 366 342 340 बाइट्स

Lcbdj=Y", "++rhJy"one two three four five six seven eight nine"3+tJ+y"ten eleven twelve"+=Nm+d"teen"=by"thir four fif six seven eigh nine"sm+dm++d\-kJKy"twenty thirty forty fifty sixty seventy eighty ninety"+=H"one hundred"\.jY+rh=J++y"first second third"m+d=T"th"tPby"ninth"3+++tJy"tenth eleventh twelfth"+m+dTNsm++Pd"ieth"m++d\-kJK+H"th."

लाइव डेमो।

342-बाइट संस्करण:

Lcbdj", "++rhJy"one two three four five six seven eight nine"3+tJ+y"ten eleven twelve"+=Nm+d"teen"=by"thir four fif six seven eigh nine"sm+dm++d\-kJKy"twenty thirty forty fifty sixty seventy eighty ninety"+=H"one hundred"\.j", "+rh=J++y"first second third"m+d"th"tPby"ninth"3+++tJy"tenth eleventh twelfth"+m+d"th"Nsm++Pd"ieth"m++d\-kJK+H"th."

366-बाइट संस्करण:

Lcbd
j", "++"One"+tJy"one two three four five six seven eight nine"+y"ten eleven twelve"+=Nm+d"teen"y"thir four fif six seven eigh nine"sm+dm++d\-kJKy"twenty thirty forty fifty sixty seventy eighty ninety"+=H"one hundred"\.
j", "+"First"+++t=Jy"first second third fourth fifth sixth seventh eighth ninth"y"tenth eleventh twelfth"+m+d"th"Nsm++Pd"ieth"m++d\-kJK+H"th."

6

PHP - 491 बाइट्स

कार्डिनल्स के लिए यहां छोटा धोखा (मैं PHP के साथ डिफ़ॉल्ट रूप से आने वाले नंबरफॉर्म क्लास का उपयोग कर रहा हूं):

echo'One, ';$x=new NumberFormatter(0,5);for($i=1;$i++<100;)echo$x->format($i).($i>99?
'.':', ');echo"
";$y=[First,second,third,fourth,fifth,sixth,seventh,eighth,ninth,tenth,
eleventh,twelfth,thirteenth,fourteenth,fifteenth,sixteenth,seventeenth,eighteenth,nineteenth,
twentieth];for($z=[thirtieth,fortieth,fiftieth,sixtieth,seventieth,eightieth,ninetieth];
$j++<99;$q=floor($j/10),$w=$z[$q-2])echo$j<21?$y[$j-1]:($j%10?$x->format($q*10).'-'.
strtolower($y[$j%10-1]):$w),', ';echo'one hundredth.';

(पठनीयता के लिए कुछ नई लाइनें जोड़ी गईं)


2
आम तौर पर चेतावनी दी जाती है, सभी @(-4 बाइट्स) को हटा दें । लेखन \n(-1 बाइट) के बजाय एक नई पंक्ति का उपयोग करें । $zदूसरे forलूप (-1 बाइट) के आरंभीकरण की परिभाषा रखें ।
ब्लैकहोल

ऑब्जेक्ट-ओरिएंटेड कंस्ट्रक्टर के बजाय प्रक्रियात्मक विधि का उपयोग करके 6 बाइट्स बचाएं
rink.attenders.6।

6

PHP 5.3+, 195 बाइट्स

जिसमें न्यूलाइन कैरेक्टर शामिल है।

यह NumberFormatterकक्षा का हिस्सा है , जैसे कि रज़वान का जवाब । सिवाय मैंने आईसीयू के अनुसार कार्डिनल और ऑर्डिनल दोनों को मंत्र दिया।

$f=numfmt_create(en,5);$g=clone$f;$g->setTextAttribute(6,'%spellout-ordinal');for($x=$y='',$i=1;$i++<100;){$x.=$f->format($i).($z=$i<=99?', ':'');$y.=$g->format($i).$z;}echo"One, $x.
First, $y.";

संबंधित: https://stackoverflow.com/a/19411974/404623


अच्छा! मुझे% स्पेलआउट-ऑर्डिनल प्रारूप का कोई पता नहीं था।
रज़वान

4

Oracle SQL 231 बाइट्स

SqlFiddleLiveDemo

 SELECT 'O'||SUBSTR(LISTAGG(TO_CHAR(TO_DATE(level,'j'),'jsp'),', ')WITHIN GROUP(ORDER BY level),2)||'.','F'||SUBSTR(LISTAGG(TO_CHAR(TO_DATE(level,'j'),'jTHSP'),', ')WITHIN GROUP(ORDER BY level),2)||'.' FROM DUAL CONNECT BY level<101

3

जावास्क्रिप्ट ईएस 6, 562 464 बाइट्स

अभी तक गोल्फ भी नहीं कराया!

n=>(f=(a,b)=>Array(89).fill(a=btoa(a+`·§·,í*íË7躻rÍø·,ìrÎǯz{rÍè Ü³)Þ·,ó`).split`z`).map((l,i)=>i<1?b:i<20?a[i]:a[18+(i-i%10)/10]+'-'+a[i%10]).join`, `+', one hundred')(`¢w³·
3¶Þ{7躼ß÷³²,s±ëÞ7¢s)ÞÎקÍé^½éó·¥½ìí*íyéó~«µç§Íøµç§Îȱµç§Îǯz{^z|Þmyéó)Þµç§ÎÜܳ¶«·,ߢêíË7â~ܳ²,mË;½éíË7¢rÎx§µì³`,'One')+`
`+f(`~*ì·;rÝÎØb­Üߢêí7â~Øs²,m;½éí7¢Øs)Þ¶íz{aÍé^½éí;pz[Þ¶í*íyéí7躻^z{aÍøµç§¶ì^z{aÎǯz{^z{aÍè ×Øs)޵秶ó`,'First')+'th'

यदि यह काम नहीं करता है तो मुझे सभी विशेष पात्रों के कारण एक हेक्सडंप जोड़ने की आवश्यकता हो सकती है तो मुझे कृपया मुझे बताएं कि यदि यह मामला है और मैं कल तक आपके पास ।

यदि वे कोई टाइपोस हैं तो मुझे भी बताएं।

पास्टबिन में कोड (सफारी नाइटली पर परीक्षण किया गया)

व्याख्या

यह विकृत पात्रों का एक गुच्छा जैसा लग सकता है लेकिन यह वास्तव में बहुत सरल है।

हम कार्डिनल उत्पन्न करके शुरू करते हैं। यह सरणी btoaफ़ंक्शन का उपयोग करके संपीड़ित होती है।

['one', ..., 'eighteen', 'nineteen', 'twenty', 'thirty', ...,'ninety']

"रेंज" के माध्यम से लूप करने के लिए हम निम्नलिखित का उपयोग करते हैं:

अब हम लंबाई का एक एरे का उपयोग कर 89 उत्पन्न करते हैं। वह ...है जो सरणी को अनसेप्स करता है

Array(89).fill(...)

फिर इसके माध्यम से नक्शा करें, मैं सूचकांक हूं:

.map((l,i)=>

अब स्थिति के लिए, i < 1या यदि यह पहला आइटम है, तो हम एक / पहले के पूंजीकृत संस्करण का उपयोग करेंगे

i<1?b

अन्यथा ... यदि यह 20 से कम है, तो हम ग्यारह ... उन्नीस का उत्पादन करते हैं

i<20?a[i]:

अन्यथा ... का उपयोग करके (i-i%10)/10हम संख्या का अंतिम अंक प्राप्त करते हैं। 1..19 की भरपाई के लिए हम इसमें 18 जोड़ते हैं। हम एक जोड़ते हैं- अंक जोड़ते हैं और फिर अंतिम अंक या I% 10 जोड़ते हैं

अंत में, हम बहुत अंत में 'एक सौ' जोड़ते हैं क्योंकि हम नहीं करते हैं।

हम इसे दोनों प्रकार की संख्याओं के लिए दोहराते हैं और एक नई रेखा के साथ अलग करते हैं


फ़ायरफ़ॉक्स के साथ प्रयास किया गया: पोस्ट किया गया कोड त्रुटिपूर्ण है। पास्टबिन में कोड ठीक है, लेकिन पहले के बाद की अवधि याद आती है hundred। कुल मिलाकर: शानदार नौकरी | +1
edc65

विशेष पात्रों के साथ क्या है?
चमकदार

3

सी ++ 704 642 620 602

कोई पुस्तकालय के अलावा अन्य उपयोग ostream operator<<()के लिए char*एस।

#include<iostream>
char*q,a[]="|one|two|three|four|five|six|seven|eight|ni&u$Il%*twel&bthirte$Q(P#tif#j)/#k'L#|)y#r*4#s'9rst&>cond*5d)zh)gh)U#V)Ch)2h(}#V09$m0M$I0]'g0k)B0|*I#}1A+4$01f+y1u$$|+/nty+(y*`#X*3y)p#V)Ly))y(dyC5~hundred)Oie1o#|1c#}*E#s*a#t*}$&+9#|+T#|+uth",b[448],*s=a,*t=b;int i,j,k;auto p(int k){for(s=b;k--;)while(*s++);return s;}int main(){for(;k=*s++;)if(k>98)*t++=k<'|'?k:" "[k<'~'];else for(i=(k-35)*95+*s++-32,q=t-i/9,k=3+i%9;k--;)*t++=*q++;for(j=0;j<2;++j)for(i=1;b[1+126*j]^=32*(i<3),k=i<20?i:i%10,i<101;++i)std::cout<<p(40+!k*j*11+i/10)<<"-"[!k|i<20]<<p(j*20+k)<<", \0.\n"+i/100*3;}

लाइव संस्करण

कुछ व्हाट्सएप और कुछ टिप्पणियों के साथ:

#include <iostream>

// Encoded as literal characters or offset/length pairs for previous runs of characters, LZ like
char *q, a[] =
             "|one|two|three|four|five|six|seven|eight|ni&u$Il%*twel&bthirte$Q(P#tif#j)/"
             "#k'L#|)y#r*4#s'9rst&>cond*5d)zh)gh)U#V)Ch)2h(}#V09$m0M$I0]'g0k)B0|*I#}1A+4$01f+y1u$$|"
             "+/nty+(y*`#X*3y)p#V)Ly))y(dyC5~hundred)Oie1o#|1c#}*E#s*a#t*}$&+9#|+T#|+uth",
         b[448], *s = a, *t = b;

int i, j, k;

// Find the kth null separated string in array b
auto p(int k) {
    for (s = b; k--;)
        while (*s++)
            ;
    return s;
}

int main() {
    // Decode the compressed 'primitives' we use to build up the output.
    for (; k = *s++;)
        if (k > 98)
            *t++ = k < '|' ? k : " "[k < '~'];
        else
            for (i = (k - 35) * 95 + *s++ - 32, q = t - i / 9, k = 3 + i % 9; k--;) *t++ = *q++;

    // Loop twice over numbers 1-100, building up output from the 'primitives' in our array
    for (j = 0; j < 2; ++j)
        for (i = 1; b[1 + 126 * j] ^= 32 * (i < 3), k = i < 20 ? i : i % 10, i < 101; ++i)
            std::cout << p(40 + !k * j * 11 + i / 10) << "-"[!k | i < 20] << p(j * 20 + k)
                      << ", \0.\n" + i / 100 * 3;
}

संकुचित स्ट्रिंग में से डिकोड किया aगया है b:

|one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve|thirteen|fourteen|fifteen|
sixteen|seventeen|eighteen|nineteen||first|second|third|fourth|fifth|sixth|seventh|eighth|
ninth|tenth|eleventh|twelfth|thirteenth|fourteenth|fifteenth|sixteenth|seventeenth|
eighteenth|nineteenth|||twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|one~
hundred|||twentieth|thirtieth|fourtieth|fiftieth|sixtieth|seventieth|eightieth|
ninetieth|one~hundredth;

बिना न्यूलाइन्स के। विघटन के दौरान |एस को बदल दिया जाता है '\0'और ~एस को बदल दिया जाता है ' '(जिस तरह से वर्णों को मुद्रण योग्य ASIIII में एन्कोड किया जाता है)। इन 'आदिम' तारों को तब फ़ंक्शन bका उपयोग करके सरणी में सूचकांक द्वारा देखा pजाता है और आउटपुट को इकट्ठा करने के लिए उपयोग किया जाता है।

संपीड़न एक साधारण एलजेड जैसी योजना है जहां अक्षर या तो शाब्दिक के रूप में या बफर में एक नकारात्मक ऑफसेट के रूप में एन्कोड किए जाते हैं और एक रन लंबाई (दो वर्णों में एन्कोडेड) होती है यदि लंबाई का मेल> = 3 पाया जाता है। स्ट्रिंग को गैर-मुद्रण योग्य वर्णों का उपयोग करके आगे संकुचित किया जा सकता है लेकिन मुझे अपना कोड कॉपी और पेस्ट करना पसंद है :)


1

जावास्क्रिप्ट (ईएस 6), 713

इस सवाल पर मेरे दूसरे PHP सबमिशन के समान । (2444 - 713) / 2444 = 70.8% संपीड़न।

a=`Onez]cu^dP~Ntenz\`zHlvezmwgwjwkw{wqwpwHnQxZx]xcxux^xdxPx~xNmQXZX]XcXuX^XdXPX~XNforQbZb]bcbub^bdbPb~bNjQWZW]WcWuW^WdWPW~WNkQVZV]VcVuV^VdVPV~VN{QUZU]UcUuU^UdUPU~UNqQTZT]TcTuT^TdTPT~TNpQSZS]ScSuS^SdSPS~SNy.
FirstzaRMLKJI[ten}\`}Hlf}mGgGjGkG{GqGpGHnYx_xaxRxMxLxKxJxIx[mYX_XaXRXMXLXKXJXIX[forYb_babRbMbLbKbJbIb[jYW_WaWRWMWLWKWJWIW[kYV_VaVRVMVLVKVJVIV[{YU_UaURUMULUKUJUIU[qYT_TaTRTMTLTKTJTIT[pYS_SaSRSMSLSKSJSIS[yth.`,'eleven|`}|`z|twe|q}|{}|k}|j}|g}|pz|{z|kz|gz|one hundred|tyz|mdz|qtz|p~|q~|{~|k~|j~|m~|tie}|onez|nin}|twoz|fivez|firstz|teen|threez|secondz|for~|four|fif|twen~|six|thir|nine|eigh|, |seven|th, |ty-'.split('|').map((e,i)=>a=a.split('`GwHIJKLMNPduyQR~STUVWXYZ[]^_`cabgjxkmpqz{}~'[i]).join(e)),alert(a)

बेला


इसे क्यों ठुकरा दिया गया?
DankMemes

1

गणितज्ञ 415 391 407

कार्डिनल्स द्वारा दिया जाता है IntegerName[n]। अध्यादेश कार्डिनल से प्राप्त होते हैं।

s = StringRiffle; y = IntegerName; t = StringReplace;
k@n_ := If[(z = (TextWords["first second third a fifth a a a ninth,a, a twelfth a a a a a eighteenth a, twentieth"])[[n]]) == "a", y@n <> "th", z]
g@n_ := Module[{i = IntegerDigits[n], z}, z := y[Quotient[n, 10]*10];Which[n == 100, "one hundredth", n < 20, k[n], i[[-1]] == 0, t[z, "y" -> "ieth"], 3 > 2, z <> "-" <> k[i[[-1]]]]]
t[(s[y@Range@100 /. "one" -> "One", ", "] <> ".") <> s[g /@ Range@100 /. "first" -> "\nFirst", ", "] <> ".", "tt" -> "t"]

आउटपुट:

One, two, three, four, five, six, seven, eight, nine, ten, eleven, twelve, thirteen, fourteen, fifteen, sixteen, seventeen, eighteen, nineteen, twenty, twenty-one, twenty-two, twenty-three, twenty-four, twenty-five, twenty-six, twenty-seven, twenty-eight, twenty-nine, thirty, thirty-one, thirty-two, thirty-three, thirty-four, thirty-five, thirty-six, thirty-seven, thirty-eight, thirty-nine, forty, forty-one, forty-two, forty-three, forty-four, forty-five, forty-six, forty-seven, forty-eight, forty-nine, fifty, fifty-one, fifty-two, fifty-three, fifty-four, fifty-five, fifty-six, fifty-seven, fifty-eight, fifty-nine, sixty, sixty-one, sixty-two, sixty-three, sixty-four, sixty-five, sixty-six, sixty-seven, sixty-eight, sixty-nine, seventy, seventy-one, seventy-two, seventy-three, seventy-four, seventy-five, seventy-six, seventy-seven, seventy-eight, seventy-nine, eighty, eighty-one, eighty-two, eighty-three, eighty-four, eighty-five, eighty-six, eighty-seven, eighty-eight, eighty-nine, ninety, ninety-one, ninety-two, ninety-three, ninety-four, ninety-five, ninety-six, ninety-seven, ninety-eight, ninety-nine, one hundred.
First, second, third, fourth, fifth, sixth, seventh, eighth, ninth, tenth, eleventh, twelfth, thirteenth, fourteenth, fifteenth, sixteenth, seventeenth, eighteenth, nineteenth, twentieth, twenty-first, twenty-second, twenty-third, twenty-fourth, twenty-fifth, twenty-sixth, twenty-seventh, twenty-eighth, twenty-ninth, thirtieth, thirty-first, thirty-second, thirty-third, thirty-fourth, thirty-fifth, thirty-sixth, thirty-seventh, thirty-eighth, thirty-ninth, fortieth, forty-first, forty-second, forty-third, forty-fourth, forty-fifth, forty-sixth, forty-seventh, forty-eighth, forty-ninth, fiftieth, fifty-first, fifty-second, fifty-third, fifty-fourth, fifty-fifth, fifty-sixth, fifty-seventh, fifty-eighth, fifty-ninth, sixtieth, sixty-first, sixty-second, sixty-third, sixty-fourth, sixty-fifth, sixty-sixth, sixty-seventh, sixty-eighth, sixty-ninth, seventieth, seventy-first, seventy-second, seventy-third, seventy-fourth, seventy-fifth, seventy-sixth, seventy-seventh, seventy-eighth, seventy-ninth, eightieth, eighty-first, eighty-second, eighty-third, eighty-fourth, eighty-fifth, eighty-sixth, eighty-seventh, eighty-eighth, eighty-ninth, ninetieth, ninety-first, ninety-second, ninety-third, ninety-fourth, ninety-fifth, ninety-sixth, ninety-seventh, ninety-eighth, ninety-ninth, one hundredth.

1
कुछ eightth
अचूक

तुम सही थे! मैंने अब उन्हें ठीक किया।
डेविड सेप

आप 4 बाइट्स को बचाने के "first" -> "\nFirst"लिए बदल सकते हैं "fir" -> "\nFir"
लेजिओनमाला 978

@ LegionMamal978, अच्छा सुझाव है, लेकिन यह काम नहीं करेगा क्योंकि हम तत्वों (शब्दों) को एक सूची में बदल रहे हैं: "पहला" सूची में एक तत्व है, लेकिन "fir" नहीं है। यदि हम आपके सुझाव को तत्वों की सूची के बाद लागू करने का प्रयास करते हैं StringJoin, तो "इक्कीसवें ... बत्तीसवें ..." "इक्कीसवें ... पहले-पहले ..." हो जाएंगे।
14

1

जावास्क्रिप्ट (ईएस 6), 480

/*TEST: redirect console output to snippet body */ console.log=x=>O.innerHTML=x

// Not a function, as a complete program is requested
b=x=>btoa(x).split`/`;
Z=i=>z[i]||z[i-8]||z[i-18];
y=b("ýø«²ßìyÊ'wûa·ýøÿÿÞ)ÿÿûpzWÿÿÿÿÿÿÿ");
z=b("þÞþÜ(þØkyïߢêÿ~+ÞþȱþǯzÞmþx§{û^÷¥z÷§þÜ÷¿¶«ÿ÷âÿÿz(!ÿûpzÿ~ÿÿÿÿ");
o=(z.map((v,i)=>i<20?i<13?v:(v||z[i-10])+'teen':z[S='slice'](0,10).map(d=>Z(i)+(d?'ty-'+d:'ty')))+`,${h='one hundred'}.\nF`).split`,`;
q=y.map((v,i)=>i<4?v:`${v||o[i]}th`);
q=z.map((v,i)=>i<20?' '+q[i]:q[S](0,10).map(d=>' '+Z(i)+(d?'ty-'+d:'tieth')));
console.log('O'+o.join`, `[S](3)+`${q}, ${h}th.`[S](4))

// INFO: z uncompressed is [,one,two,three,four,five,six,seven,eight,nine,ten,eleven,twelve,thir,,fif,,,eigh,,twen,,for,,,,,]
// INCO: y uncompressed is [,first,second,third,,fif,,,eigh,nin,,,twelf,,,,,,,,,]
#O { white-space: pre-wrap }
<pre id=O></pre>


0

PHP - 842 बाइट्स

नियमित PHP शुरू करना और टैग समाप्त करना, संपीड़न 1 है - 842/2445 = 65.6%

मूल रूप से उत्पादन का base64_encode(gzdeflate($input, 9));संचालन हो रहा है और संचालन को उलट रहा है। जाहिर है, अगर मैंने शुद्ध 8-बिट बनाम बेस -64 में आउटपुट चुना, तो यह 25% छोटा होगा, लेकिन भागने या गैर-मुद्रण योग्य वर्णों में चलने के जोखिम पर।

echo gzinflate(base64_decode('VZRdcuIwEITfcwoOQHKMfd1DBGnlKspUEYfEt1+rf2bGL6gbkLplS9/ftV0v28/j+BjPduj++H4en8vr0F/L7/HRXm29Xtryb2zXy7pgAr6585ftp93nv7exPLc2v5lrSC2d4lhKYk6ixJJQc1WqY7F12z2+P1gPmi2lWVaOnW1QXQY7sI6602k/ctrW3MHuUeHUekTUCqdTuMzyyl8YLq1wOofTMbw/kI2B0ZRIlvQrylxpxFIjVZKhNMqkUeTxdnYNioRkJKUiYXw2ekZCM5JSkTCOhGHkPAe7BkZSIlKSkTSMlPahdKQkI2kUSaNInLg9hGJlGGyjaFmF2zFeLu9GqSDrErKsgS93jywhjQ7WrCDHBjYoIIN863JFI12O4bhgu0eGSyPcmuFyDLdBuAzCrRkuVzAR4UfaZXyvt2e7fbz9WZ5feDafj/XGK3ATMQaPyuDrG36AQ3sZWHYOm769+/eJIEw0g7CWKOR1JUWiXL+VDGnzSGuv29JCzkeBLQRWtBOTCRsqZDrN7MVplxVPxXvPSajYoNoYOWxjzuRzLW0SVaeZvTi3KbwqPtoEsviIXcYcQhfTh1XMLr3oWsSzehrVKABL6xLBML9adRCY2EE4UgfBjB0CZnVWT+MOSbS00cFQ85liB5OKh1x8YgfTDR2SbnVWT+MrkIhL6w5BuTzMahHI0mV7nY5q4o5dCu7Os3u1p0tZO1XqjRP24l6xVnAMrQJeLBX8Q6fCv9PMXpwKVQgW7zrJwbjZbBNgQ5ugGdsEENGmAPE0sxenNpWKxReCtWxTyLiNj7f/'));
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.