কার্ডিনাল এবং অর্ডিনাল, 1 থেকে 100


28

আপনার সংকোচনের পেশীগুলি প্রসারিত করার জন্য এখানে একটি সাধারণ। আপনার কোড (একটি সম্পূর্ণ প্রোগ্রাম) অবশ্যই 1 থেকে 100 এর মধ্যে সমস্ত কার্ডিনাল সংখ্যার বানানযুক্ত ইংরেজী উপস্থাপনা অবশ্যই আউটপুট করতে হবে এবং তারপরে সমস্ত অর্ডিনাল সংখ্যা 1 থেকে 100 পর্যন্ত করা হবে each hyphenated। প্রতিটি তালিকা একটি একক মূলধন অক্ষর দিয়ে শুরু করা উচিত এবং একটি সময়ের সাথে শেষ করা উচিত। দুটি তালিকা একটি নতুন লাইনের দ্বারা পৃথক করা উচিত।

স্পষ্টতার স্বার্থে, আপনাকে অবশ্যই এই সঠিক বাইট স্ট্রিম উত্পাদন করতে হবে:

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 অর্ডিনাল হিসাবে বর্তমান যুক্তি আউটপুট করে
  • ~% একটি নতুন লাইন আউটপুট
  • ~:*পূর্ববর্তী হিসাবে প্রক্রিয়া করার জন্য বর্তমান যুক্তিটি পুনরায় সেট করুন , যা এখানে দ্বিতীয়বার পূর্ণসংখ্যার তালিকা পুনরায় ব্যবহার করতে ব্যবহৃত হয়।

প্রজেমিসাওপিকে ধন্যবাদ 2 বাইট সংরক্ষণ করা।


1
এবং আমি আমার 340-বাইট উত্তরটি চিত্তাকর্ষক বলে মনে করেছি ...
kirbyfan64sos

3
এই মুহুর্তে আপনার প্রতিনিধিত্ব সুন্দর 1337! : ডি সুতরাং, দুর্ভাগ্যক্রমে, আমি এই সমাধানটিকে উত্সাহিত করতে পারি না ... :(
নুমেরি মনিকা রিনস্টেট মনিকা

2
@ নিউমারী আপনি এখনই উন্নতি করতে পারেন। ;)
ডিএলসক

1
ইনপুটটির কলমোগোরভ জটিলতার চেয়ে কম সমাধানগুলি সর্বদা খুব চিত্তাকর্ষক! সাবাশ.
isaacg

1
@ ডিএলকাস আমার জন্য বিরতি দেওয়া ঠিক ছিল ...: ডি
বলেছেন

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

পিএইচপি - 491 বাইট

কার্ডিনালগুলির জন্য এখানে ছোট ছোট ঠকাই (আমি পিএইচপি দিয়ে ডিফল্ট আসা নম্বর ফর্ম্যাটর ক্লাসটি ব্যবহার করছি):

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.attendant.6

6

পিএইচপি 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.";

সম্পর্কিত: /programming//a/19411974/404623


নিস! আমার কাছে% বানান-অর্ডিনাল ফর্ম্যাট সম্পর্কে ধারণা ছিল না।
রাজ্জান

4

ওরাকল এসকিউএল 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

জাভাস্ক্রিপ্ট ES6, 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আমরা সংখ্যার শেষ সংখ্যাটি পাই। ১.১৯ এর ক্ষতিপূরণ দিতে আমরা এতে 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'এবং এরগুলি (যেভাবে অক্ষরগুলি মুদ্রণযোগ্য এএসসিআইআইতে এনকোড করা হয় তার ছাঁটাই) ~with ' 'এই 'আদিম' স্ট্রিংগুলি ফাংশনটি bব্যবহার করে অ্যারেতে সূচক দ্বারা সন্ধান করা হয় pএবং আউটপুট একত্রিত করতে ব্যবহৃত হয়।

কম্প্রেশন হ'ল একটি সাধারণ এলজেডের মতো স্কিম যেখানে অক্ষরগুলি হয় আক্ষরিক হিসাবে এনকোড করা হয় বা বাফারে একটি নেতিবাচক অফসেট হিসাবে এবং দৈর্ঘ্যের কোনও মিল> = 3 পাওয়া গেলে রানের দৈর্ঘ্য (দুটি অক্ষরে এনকোডড) হয়। মুদ্রণযোগ্য অক্ষর ব্যবহার করে স্ট্রিংটি আরও সংকুচিত করা যেতে পারে তবে আমি আমার কোডটি অনুলিপি করে নিরাপদে আটকে দিতে চাই :)


1

জাভাস্ক্রিপ্ট (ES6), 713

এই প্রশ্নে আমার দ্বিতীয় পিএইচপি জমা দেওয়ার অনুরূপ । (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)

বেহালা


কেন এই নিম্নমানের ছিল?
ড্যাঙ্কমেস

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"পারেন।
LegionMammal978

@ লিজিমনমাল ৯৮৮, ভাল পরামর্শ তবে এটি কার্যকর হবে না কারণ আমরা একটি তালিকায় উপাদান (শব্দ) প্রতিস্থাপন করছি: তালিকার "প্রথম" একটি উপাদান, তবে "ফার" নেই। যদি উপাদানগুলির তালিকা সম্পাদনা করার পরে আমরা আপনার পরামর্শটি বাস্তবায়নের চেষ্টা করি StringJoin, তবে "একবিংশ ... ত্রিশতম ..." হয়ে উঠবে "একবিংশ ... ত্রিশতম ..."।
ডেভিডসি

1

জাভাস্ক্রিপ্ট (ES6), 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

পিএইচপি - 842 বাইট

নিয়মিত পিএইচপি ছাড়ার পরে ট্যাগগুলি শেষ করা এবং সংমিশ্রণ 1 - 842/2445 = 65.6%

মূলত আউটপুট পেতে base64_encode(gzdeflate($input, 9));এবং অপারেশন বিপরীত। স্পষ্টতই, আমি যদি খাঁটি 8-বিট বনাম বেস -৪ in এ আউটপুট চয়ন করি তবে এটি 25% ছোট হবে, তবে পালানোর বা অন-প্রিন্টযোগ্য অক্ষরগুলিতে চালিত হওয়ার ঝুঁকিতে।

echo gzinflate(base64_decode('VZRdcuIwEITfcwoOQHKMfd1DBGnlKspUEYfEt1+rf2bGL6gbkLplS9/ftV0v28/j+BjPduj++H4en8vr0F/L7/HRXm29Xtryb2zXy7pgAr6585ftp93nv7exPLc2v5lrSC2d4lhKYk6ixJJQc1WqY7F12z2+P1gPmi2lWVaOnW1QXQY7sI6602k/ctrW3MHuUeHUekTUCqdTuMzyyl8YLq1wOofTMbw/kI2B0ZRIlvQrylxpxFIjVZKhNMqkUeTxdnYNioRkJKUiYXw2ekZCM5JSkTCOhGHkPAe7BkZSIlKSkTSMlPahdKQkI2kUSaNInLg9hGJlGGyjaFmF2zFeLu9GqSDrErKsgS93jywhjQ7WrCDHBjYoIIN863JFI12O4bhgu0eGSyPcmuFyDLdBuAzCrRkuVzAR4UfaZXyvt2e7fbz9WZ5feDafj/XGK3ATMQaPyuDrG36AQ3sZWHYOm769+/eJIEw0g7CWKOR1JUWiXL+VDGnzSGuv29JCzkeBLQRWtBOTCRsqZDrN7MVplxVPxXvPSajYoNoYOWxjzuRzLW0SVaeZvTi3KbwqPtoEsviIXcYcQhfTh1XMLr3oWsSzehrVKABL6xLBML9adRCY2EE4UgfBjB0CZnVWT+MOSbS00cFQ85liB5OKh1x8YgfTDR2SbnVWT+MrkIhL6w5BuTzMahHI0mV7nY5q4o5dCu7Os3u1p0tZO1XqjRP24l6xVnAMrQJeLBX8Q6fCv9PMXpwKVQgW7zrJwbjZbBNgQ5ugGdsEENGmAPE0sxenNpWKxReCtWxTyLiNj7f/'));
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.