ফরাসি ভাষায় সংখ্যা বানান


23

একটি সংখ্যাটিকে ইংরেজীতে অঙ্কে রূপান্তর করার জন্য একটি চ্যালেঞ্জ ছিল , তবে এটি খুব সোজা ছিল। 0-100 নম্বর দেওয়া, আপনার কাজ হ'ল ফরাসী ভাষায় সংশ্লিষ্ট অঙ্কটি আউটপুট করা। ফরাসি সংখ্যার সিস্টেমটির পিছনে ইংরাজির তুলনায় আরও জটিল যুক্তি রয়েছে:

সংখ্যা
---------------
 0 জিরো (অ্যাকসেন্ট নোট করুন)
 1 আন
 2 ডিউক্স
 3 ট্রোয়া
 4 কোয়াটার
 5 সিন্কি
 6 ছয়
 7 সেপ্টেম্বর
 8 হুইট
 9 neuf
10 ডিক্স
11 টি onze
12 ডোজ
13 ট্রাইজে
14 কোয়েটার
15 কুইনজ
16 জব্দ করা
17 ডিক্স-সেপ্ট (আক্ষরিকভাবে দশটি সাত)
18 ডিক্স-হুইট
19 ডিক্স-নিউফ
20 vingt
21 ভিটিং এট আন (হাইফেন নেই)
22 ভিংট-ডিউক্স
...
30 ট্রেন্ট
...
40 কোয়ার্ট
...
50 সিনক্যান্ট
...
60 সিক্সেন্টে
...
70 soixante-dix (আক্ষরিক অর্থে দশটি)
71 মিলিয়ন ডলার
...
৮০ কোয়াটার-ভিংটস (টি নোট করুন; আক্ষরিক অর্থে চারটি কুড়ি)
81 কোয়াটার-ভিংগ-উন (হাইফেনগুলি নোট করুন)
...
90 কোয়াটার-উইংট-ডিক্স
91 কোয়াটার-উইংট-ওঞ্জে
...
99 কোয়াটার-উইংট-ডিক্স-নিউফ (4 * 20 + 10 + 9)
100 শতাংশ

সম্পূর্ণ তালিকার জন্য, http://quizlet.com/996950/ ( http://www.webcitation.org/6RNppaJx0 ) অনুসরণ করুন

আরও বিধি / ব্যাখ্যা

  • সংখ্যাটি 1 এ শেষ হয়ে গেলে EXCEPT শব্দের মধ্যে সর্বদা একটি হাইফেন থাকবে।
  • সংখ্যাটি যখন 1 এ শেষ হয়, আন বা ওঞ্জেজের আগে শব্দটি et (অর্থ এবং ) যুক্ত হয় । (31 = ট্রেন্ট এবং আন)
  • তবে, 81 এবং 91 অন্যান্য সংখ্যার মতোই ফর্ম্যাট করা হয়েছে। (81 = কোয়াটার-উইংট-আন)
  • 60 এ, সিস্টেমটি বেস 10 থেকে বেস 20 এ স্যুইচ করে।
  • এই সম্পর্কে ওয়েব জুড়ে কিছু ছোটখাটো বৈষম্য রয়েছে; প্রশ্নের জন্য উপরের লিঙ্ক করা তালিকা দেখুন।
  • ডিফল্টরূপে নিষিদ্ধ লুফোলগুলি অনুমোদিত নয়।
  • একটি বাহ্যিক উত্স যেমন একটি ওয়েবসাইট, পাশাপাশি কোনও লাইব্রেরি, এপিআই, ফাংশন, বা এই জাতীয় সংখ্যাকে সংখ্যায় রূপান্তর করতে বা ফরাসি ভাষায় অনুবাদ করার অনুমতি নেই।
  • এটি , সুতরাং কয়েকটি বাইটের সাথে উত্তর জিতল।
  • যদি উপলভ্য থাকে তবে আপনার কোডটির সহজ পরীক্ষার জন্য অনুমতি দেওয়ার জন্য দয়া করে একটি অনলাইন সংকলককে লিঙ্ক করুন।

ইনপুট

  • আপনার ভাষা ইনপুট নেয় তবে ইনপুট নেওয়া হবে। (এসটিডিএন, কমান্ড লাইন ইত্যাদি)
  • ইনপুটটি একটি একক স্ট্রিং হবে, 0 থেকে 100 সমেত (সম্পূর্ণ শীর্ষস্থানীয় জিরো )চ্ছিক) এর মধ্যে একটি সম্পূর্ণ সংখ্যা থাকে।
  • আপনি ধরে নিতে পারেন ইনপুটটি সর্বদা সুগঠিত হবে।

আউটপুট

  • ফলাফলটি আপনার ভাষার জন্য সবচেয়ে সুবিধাজনক পদ্ধতির আউটপুট হবে। (STDOUT, ডায়লগ বাক্স, ইত্যাদি)
  • আউটপুট ক্ষেত্রে কেস আসে না।

উদাহরণ

এর বিরুদ্ধে আপনার কোড পরীক্ষা করুন:

ইনপুট আউটপুট
-------------
0 জোরো
18 ডিক্স-হুইট
51 সিনক্যান্ট এবং আন
80 কোয়াটার-ভিংটস
91 কোয়াটার-উইংট-ওঞ্জে
99 কোয়াটার-উইংট-ডিক্স-নিউফ

3
নোট করুন যে ফরাসী ভাষী বেলজিয়ানরা সিক্সান্তে-ডিক্স, কোয়াটার-ভিংটস, কোয়াটার-ভিংট-ডিক্সের পরিবর্তে "সেপ্টেন্টে", "অক্টান্ট" এবং "ননান্টে" ব্যবহার করে। এটি প্রাচীন বেলজিয়াম উপনিবেশে ব্যবহার করা উচিত।
ইমানুয়েল

8
ফরাসি ভাষায় এটি করার প্রতিভা জন্য +1। আমার একজন জার্মান সহকর্মী যেমন বলেছিলেন: "জার্মানরা সংখ্যাগুলি পিছনে বলে say তবে ফরাসী ভাষা বুঝতে আপনার একটি ক্যালকুলেটর দরকার ulator"
লেভেল নদী সেন্ট

1
দেখে মনে হচ্ছে জোরো 0-100 ব্যাপ্তির একমাত্র উচ্চারণযুক্ত সংখ্যা। এটি স্ট্যান্ডার্ড ASCII অক্ষর নয়। আমি মনে করি যে কোনও অক্ষর (কোড পৃষ্ঠা 437, ইউটিএফ -8, ইত্যাদি) যা এই অক্ষরটিকে আউটপুট করতে পারে তা গ্রহণযোগ্য।
স্তর নদী সেন্ট

1
@ মার্টিন নিয়মগুলিতে বলা হয়েছে "আপনি ধরে নিতে পারেন ইনপুটটি সর্বদা সুগঠিত হবে" সুতরাং ইনপুট> 100 কোনও আচরণের ফলে আসতে পারে।
নিনজাবিয়ারমনেকি

3
ফরাসি ব্যবস্থার পিছনে একেবারেই যুক্তি নেই। আমি নিশ্চিত যে 99% ফরাসী চেকগুলিতে একটি ভুল রয়েছে, এটি 100 এর পরে আরও জটিল। বিশ্বাস করুন, আমি ফরাসি।
মাইকেল এম।

উত্তর:


7

জাভাস্ক্রিপ্ট (ES6) 318 321

বাগ ফিক্স সম্পাদনা করুন (শীর্ষস্থানীয় 0 গুলি পরিচালনা করা) এবং আরও গল্ফ করেছে

উট কেস ট্রিক @ কোর 1024 এর জন্য ক্রেডিট

পপআপের মাধ্যমে ইনপুট / আউটপুট সহ

alert((n=prompt(),w='ZéroUnDeuxTroisQuatreCinqSixSeptHuitNeufDixOnzeDouzeTreizeQuatorzeQuinzeSeizeDix-septDix-huitDix-neufVingtTrenteQuaranteCinquanteSoixante'.match(/[A-Z][^A-Z]+/g),
u=n%10,s=u-1|n>80?d='-':' et ',n>99?'Cent':n<21?w[n|0]:n<70?w[18+n/10|0]+(u?s+w[u]:''):(n<80?w[24]:w[4]+d+w[20])+(n-80?s+w[n%20]:'s')))

একটি পরীক্ষামূলক ফাংশন হিসাবে

F=n=>(
  w='ZéroUnDeuxTroisQuatreCinqSixSeptHuitNeufDixOnzeDouzeTreizeQuatorzeQuinzeSeizeDix-septDix-huitDix-neufVingtTrenteQuaranteCinquanteSoixante'
  .match(/[A-Z][^A-Z]+/g),
  u=n%10,s=u-1|n>80?d='-':' et ',
  n>99?'Cent':
  n<21?w[n|0]:
  n<70?w[18+n/10|0]+(u?s+w[u]:''):
  (n<80?w[24]:w[4]+d+w[20])+(n-80?s+w[n%20]:'s')
)

টেস্ট করার জন্য ফায়ারফক্স কনসোল বা Firebug

for (i = 0; i < 100; console.log(r),i+= 10) 
  for (j=0, r=''; j < 10; j++)
    r+=(i+j)+':'+F(i+j+'')+", "; // specific: input is a string
F('100')

পরীক্ষা আউটপুট

0: জেরো, 1: আন, 2: ডিউস, 3: ট্রয়স, 4: কোয়াটার, 5: সিনক, 6: ছয়, 7: সেপ্টেম্বর, 8: হুইট, 9: নিউফ,
10: ডিক্স, 11: ওঞ্জ, 12: ডোজ, 13: ট্রাইজ, 14: কোয়েটারজ, 15: কুইঞ্জ, 16: সিজেজ, 17: ডিক্স-সেপ্ট, 18: ডিক্স-হুইট, 19: ডিক্স-নিউফ,
20: ভিংট, 21: ভিংট এট আন, 22: ভিংট-ডিউস, 23: ভিংট-ট্রুইস, 24: ভিংট-কোয়াটার, 25: ভিংট-সিনক, 26: ভিংট-সিক্স, 27: ভিংট-সেপ্টেম্বর, 28: ভিংট- হুইট, ২৯: ভিংট-নিউফ,
30: ট্রেন্তে, 31: ট্রেন্তে এট আন, 32: ট্রেন্তে-ডিউস, 33: ট্রেন্তে-ট্রয়স, 34: ট্রেন্তে-কোয়াটার, 35: ট্রেন্তে-সিনক, 36: ট্রেন্তে-সিক্স, 37: ট্রেন্তে-সেপ্টেম্বর, 38: ট্রেন্তে- হুইট, 39: ট্রেন্তে-নুফ,
40: কোয়ারান্ট, 41: কোয়ান্টে এট আন, 42: কোয়ার্টে-ডিউস, 43: কোয়ার্টে-ট্রুইস, 44: কোয়ার্টে-কোয়ার্টে, 45: কোয়ার্টে-সিংক, 46: কোয়ারেন্ট-সিক্স, 47: কোয়ারেন্ট-সেপ্টেম্বর, 48: কোয়ারেন্ট- হুইট, 49: কোয়ারান্ট-নিউফ,
50: সিনক্যান্ট, 51: সিনক্যান্ট এট আন, 52: সিনক্যান্ট-ডিউস, 53: সিনক্যান্ট-ট্রয়িস, 54: সিনক্যান্ট-কোয়েটার, 55: সিনক্যান্ট-সিনক, 56: সিনক্যান্ট-সিক্স, 57: সিনক্যান্ট-সেপ্ট, 58: সিনক্যান্ট- হুইট, 59: সিনক্যান্ট-নিউফ,
60: সিক্সান্তে, 61: সিক্সান্তে ও আন, 62: সিক্সান্তে-ডিউস, 63: সিক্সান্তে-ট্রয়িস, 64: সিক্সান্তে-কোয়াট্র, 65: সিক্সান্তে-সিনক, 66: সিক্সান্তে-সিক্স, 67: সিক্সান্তে-সেপ্ট, 68: সিক্সান্তে- হুইট, 69: সিক্সান্তে-নিউফ,
70: সিক্সান্তে-ডিক্স, 71: সিক্সান্তে ওঞ্জ, 72: সিক্সান্তে-ডুজে, 73: সিক্সান্তে-ট্রাইজে, 74: সিক্সান্তে-কোয়েটারে, 75: সিক্সান্তে-কুইঞ্জ, 76: সিক্সান্তে-সাইজ, 77: সিক্সান্তে-ডিক্স-সেপ্ট, 78: সিক্সান্তে-ডিক্স-হুইট, 79: সিক্সান্তে-ডিক্স-নিউফ,
80: কোয়াটার-ভিংটস, 81: কোয়াটার-ভিংট-উন, 82: কোয়াটার-ভিংট-ডিউকস, 83: কোয়াটার-ভিংট-ট্রয়েস, 84: কোয়াটার-ভিংট-কোয়াটার, 85: কোয়াটার-ভিংট-সিন্ক, 86: কোয়াটার- ভিংট-সিক্স, 87: কোয়াটার-ভিংট-সেপ্টেম্বর, 88: কোয়াটার-ভিংট-হুইট, 89: কোয়াটার-ভিংট-নিউফ,
90: কোয়াটার-ভিংট-ডিক্স, 91: কোয়াটার-উইংট-ওঞ্জ, 92: কোয়াটার-ভিংট-ডুজে, 93: কোয়াটার-ভিংট-ট্রাইজে, 94: কোয়াটার-ভিংট-কোয়েটারে, 95: কোয়াটার-ভিংট-কোয়েঞ্জ, 96: কোয়াটার-ভিংট-সিজেস, 97: কোয়াটার-ভিংট-ডিক্স-সেপ্ট, 98: কোয়াটার-ভিংট-ডিক্স-হুইট, 99: কোয়াটার-ভিংট-ডিক্স-নিউফ, 
"সেন্ট"

2
উটের মামলার সাথে শীতল কৌশল!
টমসডিং

@ টমসডিং সত্যিই শীতল তাই স্পষ্টতই আমার দ্বারা তৈরি করা হয়নি (পোস্টে ক্রেডিট যুক্ত করা হয়েছে)
edc65

@ edc65 আমি কি এর সাথে আমার রুবির উত্তরটি আরও উন্নত করার চেষ্টা করি তাতে আপত্তি আছে? আমি নিজেও দেখিনি যে আমি যখন আমার লেখা তখন কেস-সংবেদনশীল আউটপুট অনুমোদিত হয়। ^^
মার্টিন এন্ডার

@ মার্টিনব্যাটনার অবশ্যই আপনি করতে পারেন
এডিসি 65

6

হাস্কেল, 390 বাইট

b=(words"zéro un deux trois quatre cinq six sept huit neuf dix onze douze treize quatorze quinze seize vingt trente quarante cinquante soixante"!!)
a!b=a++"-"++b
f 0=b 0
f 71=f 60++" et onze"
f 80=f 4!b 17++"s"
f 100="cent"
f x|x<17=b x|x<20=b 10!b(x-10)|x>80=b 4!b 17!f(x-80)|m==1=f(x-1)++" et un"|x>60=f 60!f(x-60)|m==0=b(15+div x 10)|1<2=f(x-m)!f m where m=mod x 10
main=interact$f.read

Ungolfed

base :: Int -> String
--              0    1  2    3     4      5    6   7    8    9    10  11   12     13     14       15     16    17    18     19       20        21      
base i = words "zéro un deux trois quatre cinq six sept huit neuf dix onze douze  treize quatorze quinze seize vingt trente quarante cinquante soixante" !! i

hyphen :: String -> String -> String
a `hyphen` b = a ++ "-" ++ b

say :: Int -> String
say 0 = base 0
say 71 = say 60 ++ " et onze"
say 80 = say 4 `hyphen` base 17 ++ "s"
say 100 = "cent"
say x
  | x < 17 = base x
  | x < 20 = base 10 `hyphen` base (x - 10)
  | x > 80 = base 4 `hyphen` base 17 `hyphen` say (x - 80)
  | m == 1 = say (x - 1) ++ " et un"
  | x > 60 = say 60 `hyphen` say (x - 60)
  | m == 0 = base (div x 10 + 15)
  | otherwise = say (x - m) `hyphen` say m
  where m = mod x 10

main = putStr.say.read=<<getLine

কার্যকরী প্রোগ্রামিং ভাষা এই কাজের জন্য বেশ উপযুক্ত।


একটি উঁচুতে আছে, আপনি আমার চেয়ে দ্রুত ছিল। আপনি আপনার প্রধানটি প্রতিস্থাপন করতে main=interact$f.readএবং কয়েকটি অক্ষর সংরক্ষণ করতে চাইতে পারেন ।
gxtaillon

@gxtaillon হ্যাঁ, আমি ভুলে গেছি interact। আপডেট করা হয়েছে।
রায়

5

রুবি, 333 বাইট

l=['']+%w{un deux trois quatre cinq six sept huit neuf dix onze douze treize quatorze quinze seize}
d=%w{vingt trente quarante cinquante soixante _ quatre-vingt}+['']*2
n=gets.to_i
v=n%20
t=n%10
puts n<1?'zéro':n>99?'cent':d[(n<70?n:n-v)/10-2]+(n<21||t<1&&n<61?'':v<1??s:t==1&&n<80?' et ':?-)+(n>60||n<20?v<17?l[v]:'dix-'+l[t]:l[t])

এটি বেশিরভাগ মাত্র দুটি সারণী টেবিল এবং একগুচ্ছ টার্নারি অপারেটর যা সমস্ত অদ্ভুত নিয়মগুলিকে এনকোড করে এবং আপনাকে কখন কোন লকআপ টেবিলটি ব্যবহার করতে হবে তা বলে দেয়। আপনি আরও জানতে চান আমাকে জানাবেন। ;)


1
ঘৃণ্য হতে হবে নিটপিকি, তবে 80শেষের দিকে এস দিয়ে কোয়াটার-উইংসগুলি আউটপুট করা উচিত।
নিনজা বিয়ারমোনকি

@ এইচএসএল স্থির এবং কিছুটা ছোট করা হয়েছে।
মার্টিন এন্ডার

5

পাইথন - 344 (348) (380) (445) (537) বাইট

গল্ফিং প্রক্রিয়ায় সহায়তার জন্য জিআরসি, রে এবং আইস্যাককে ধন্যবাদ।

কোডটি প্রাথমিক অভিধান সংজ্ঞা এবং একটি তালিকা বোঝার সমন্বয়ে গঠিত হয় যা অভিধানের উপাদানগুলির সংযোগের সাথে শূন্যস্থানগুলিতে পূরণ করে।

আপনি অনলাইন repl.it এ কোড পরীক্ষা করতে পারেন

r=range
def f(a):b=a/60*10+10;d[a]=d[a-a%b]+(' et ','-')[a%10!=1or a>80]+d[a%b]
d=dict(zip(r(17)+r(20,70,10)+[80,100],'zéro un deux trois quatre cinq six sept huit neuf dix onze douze treize quatorze quinze seize vingt trente quarante cinquante soixante quatre-vingt cent'.split()))
[f(v)for v in r(100)if(v in d)<1]
d[80]+='s'
print d[input()]

এই কোডটি গল্ফ করার জন্য আমার সর্বশেষ প্রচেষ্টাটি প্রজন্মের প্রক্রিয়াটি ত্যাগ করা এবং সেই হ্রাসের সাথে ঘটনাস্থলে কেবল অনুরোধ করা নম্বরটি তৈরি করতে ফাংশনটিকে পরিমার্জন করা হয়েছে। তবে, যেহেতু 60 এবং 80 এর সংখ্যার অবিচ্ছিন্ন উপাদানগুলির প্রয়োজন, কোড হ্রাস করার সময় এই জাতীয় একটি ক্রিয়াকলাপ তৈরি করার লড়াই চলছে has


3
আপনি 2 এবং 3 লাইনের জন্য এই কৌশলটি ব্যবহার করতে পারেন r=range, এবং ইন্ডেন্টেশনের জন্য কেবল একটি স্থান। আর আপনার সাথে 65 বাইট সংরক্ষণ করতে পারবেনd=dict(zip(r(17)+r(20,70,10)+[80,100],'zéro un deux ... quatre-vingt cent'.split()))
GRC

যে r=rangeকৌশলটি সম্পর্কে আমি অবগত ছিলাম, কিন্তু আমি যখন 1 ম সংশোধনটি লিখেছিলাম তখন এটি যুক্ত করতে ভুলে গিয়েছিলাম। সমস্ত কিছু আমার কাছে তুলনামূলকভাবে নতুন ছিল, তাই ধন্যবাদ যথাযথ। যদিও একটি দ্রষ্টব্য, কোডটি পাইথন 3.x এ কাজ করে না যদি না printবিবৃতিটি একটি ফাংশনে রূপান্তরিত হয় এবং rডিকের ফাংশনগুলি তালিকায় পরিণত হয়।
ডক্টোরো রিচার্ড

পাইথন 2 এ আপনার দরকার নেই int(input()), input()যথেষ্ট।
রায়

1
আরও কিছু টিপস: আমি মনে করি আপনি যদি এটি প্রয়োগ b=a/60*10+10করেন f(a)তবে আপনি a-a%bএবং a%bআপনার অভিধানের কীগুলি ব্যবহার করতে পারেন । এছাড়াও, আপনি আপনার স্থান প্রয়োজন হবে না 1 or, এবং 4 র্থ লাইন সংক্ষিপ্ত করা যেতে পারে [f(v)for v in r(100)if v not in d]। যদিও আমি এর কোনটিই চেষ্টা করে দেখিনি।
grc

1
if v not in d-> if(v in d)<1একটি চরিত্র সংরক্ষণ করে। আপনি যদি সেমিকোলন আপনার ফাংশনের দুটি অংশ পৃথক করেন তবে আপনি সেগুলি একটি লাইনে রেখে দিতে পারেন।
isaacg

4

পাইথন - 392 বাইট

এটিতে বেস সংখ্যা সহ একটি তালিকা রয়েছে যা এটি অন্যান্য সংখ্যা তৈরি করতে ব্যবহার করে। শর্তসাপেক্ষে তালিকা সূচক ব্যবহার করে, প্রজন্মের বেশিরভাগ যুক্তি লাইন 2-এ তালিকার উপলব্ধিতে রয়েছে। তালিকাটি তৈরি হওয়ার পরে এটি ইনপুটযুক্ত নম্বরটি সন্ধান করে এটি মুদ্রণ করে।

সম্পাদনা করুন: গ্রিসির টিপ ব্যবহার করে 426 বাইট থেকে সংক্ষিপ্ত করা হয়েছে।

a='_un_deux_trois_quatre_cinq_six_sept_huit_neuf_dix_onze_douze_treize_quatorze_quinze_seize_dix-sept_dix-huit_dix-neut'.split('_')
a+=[[['vingt','trente'],['quarante','cinquante'],['soixante']*2,[a[4]+'-vingt']*2][b][c>9]+['','-',' et '][(c%[10,20][b>1]>0)+(c%10==1)*(b<3)]+a[c%[10,20][b>1]]for b in[0,1,2,3]for c in range(20)]
a[0]='zéro'
a[80]+='s'
a+=['cent']
print(a[int(input())])

1
আপনার সাথে 23 বাইট সংরক্ষণ করতে পারবেনa='_un_deux_trois ... quinze_seize'.split('_')
GRC

5
একটি টাইপো রয়েছে: ক্রিক্যান্ট , একটি এন অনুপস্থিত।
AL

আপনার বাইট গণনাটি আসলে 420, যা বলা হয়েছে তার চেয়ে কম।
রায়

1

পাইথন 3, (503 বাইট)

Bzip2 ব্যবহার করে টেবিলটি সঙ্কুচিত করুন এবং তারপরে ফলাফলটি সংরক্ষণ করতে ascii85 এনকোডিং ব্যবহার করুন। টেবিলটি হ'ল:

zéro
un
deux
trois
quatre
cinq
...
cent

খুব সরল পদ্ধতি, তবে এটি খুব খারাপ নয়।

Golfed

import bz2,base64 as B
print(bz2.decompress(B.a85decode('6<\\%_0gSqh;d"=$\\VU:fOjTBn&3p:MiVu^S+:%s4!Q6o8\\8%r<Bp,5\\LT&Q+19!OmJC@3n\'bD<]UHekq<8OP<;]9BZ,;>836X4<[@KJ,)FsD^8j9Q=]O]&/8\'rjSK&0Sh0W[ru0E0!!M-tL69NZF6N\'Lc#$Q=?S_P0+uEZP"[H;%Ucch??nYC76\'k<)isZIBqqOKi(,IHp""^8d/EqRpc_I<IRj[\'4KB`/."%5,"pjr&27q+&t.6J+ik=Jdd2A)j]\'jt5ts0>:sr9.@E>V0F9L?9r&pX\'E.NUP:r&?>\'*(gKmd;/1QkUb*1&JhfWiE7Kl,P,o1go+.3O&l))Y,$/PO)%"al^4H2,n-l\\PuM!W1rBB9t.,U>DhAs83burMn(%%-qHG<gr+^')).decode().split('\n')[int(input())])

Ungolfed

import bz2, base64
s = '6<\\%_0gSqh;d"=$\\VU:fOjTBn&3p:MiVu^S+:%s4!Q6o8\\8%r<Bp,5\\LT&Q+19!OmJC@3n\'bD<]UHekq<8OP<;]9BZ,;>836X4<[@KJ,)FsD^8j9Q=]O]&/8\'rjSK&0Sh0W[ru0E0!!M-tL69NZF6N\'Lc#$Q=?S_P0+uEZP"[H;%Ucch??nYC76\'k<)isZIBqqOKi(,IHp""^8d/EqRpc_I<IRj[\'4KB`/."%5,"pjr&27q+&t.6J+ik=Jdd2A)j]\'jt5ts0>:sr9.@E>V0F9L?9r&pX\'E.NUP:r&?>\'*(gKmd;/1QkUb*1&JhfWiE7Kl,P,o1go+.3O&l))Y,$/PO)%"al^4H2,n-l\\PuM!W1rBB9t.,U>DhAs83burMn(%%-qHG<gr+^'
table = bz2.decompress(base64.a85decode(s)).decode().split('\n')
num = int(input())
print(table[num])

বোনাস

সংকীর্ণ স্ট্রিংয়ে আপনি "ভিম" শব্দটি খুঁজে পেতে পারেন?


1
আমি বেশ পছন্দ Sh0W। ভিমকে খুঁজে পেল না, পাবে না।
টমসডিং

@ টমসমিডিং কত আফসোস! আমার শেষ সম্পাদনার পরে ভিম অদৃশ্য হয়ে গেল।
রায়

1

ব্যাশ, 456 440 421 408

বৈধ ইনপুট ধরে নেওয়া হয় (যে কোনও সংখ্যক নেতৃস্থানীয় শূন্যের সাথে 0 থেকে 100 পর্যন্ত পূর্ণসংখ্যা)।

v=`sed 's/0*//'<<<$1`
f=('' dix vingt trente quarante cinquante soixante soixante-dix quatre-vingts quatre-vingt-dix)
s=('' ' et un' -deux -trois -quatre -cinq -six -sept -huit -neuf)
o=${f[${v: -2:1}]}${s[${v: -1:1}]}
[ "${o:0:1}" = \  ]&&o=un
((v>99))&&o=cent
sed 's/^-//
s/s-/-/
s/s et /-/
s/dix et un/onze/
s/di.*ux/douze/
s/d.*s$/treize/
s/d.*re/quatorze/
s/d.*q/quinze/
s/di.*ix/seize/'<<<${o:-zéro}

1

জাভাস্ক্রিপ্ট 459 (উট কেসিং নেই)

@ edc65 আপনার কাছ থেকে নিতে পারে না ...;)

A="0un0deux0trois0quatre0cinq0six0sept0huit0neuf0dix0onze0douze0treize0quatorze0quinze0seize0dix-sept0dix-huit0dix-neuf".split(0);S="soixante";Q=A[4]+"-vingt";T=10;V=20;N=59;for(b=5;1<b--;)for(c=V;c--;)X=b*V+c,A[X]=[,["vingt","trente"],["quarante","cinquante"],[S,S],[Q,Q]][b][c/T|0]+(X%T?X>N?X%V==T?"-dix":"":"":"")+(1>X%T?"":(1==X%(X>N?V:T)|71==X)&81!=X?" et ":"-")+(X>N&X%V==T?"-dix":A[c%(X>N?V:T)]);A[0]="zéro";A[80]+="s";A[100]="cent";alert(A[prompt()])

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.