फ्रेंच में संख्याओं को देखें


23

अंग्रेजी में एक संख्या को उसके अंक में बदलने की चुनौती थी , लेकिन वह बहुत सीधी थी। ०-१०० की संख्या को देखते हुए, आपका कार्य फ्रेंच में संबंधित अंक का उत्पादन करना है। अंग्रेजी के मुकाबले फ्रांसीसी अंक प्रणाली के पीछे एक अधिक जटिल तर्क है:

संख्या अंक
---------------
 0 ज़ीरो (उच्चारण पर ध्यान दें)
 1 अन
 2 डिक्स
 3 टुकड़ी
 4 चौथाई
 5 सिनक
 6 छक्का
 7 सेप्ट
 8 कूल्हे
 9 नेफ्यू
10 डिक्स
११ पर
12 दूज
13 ट्रे
१४ बटेर
15 क्विं
16 जब्त
17 डिक्स-सीप्ट (शाब्दिक रूप से दस सात)
18 डिक्स-हूट
19 डिक्स-नेफ
20 विन्ग
21 vingt एट संयुक्त राष्ट्र (कोई हाइफ़न)
22 विन्ग-ड्यूक्स
...
30 ट्रेंट
...
40 क्वारंटे
...
50 सिनकांटे
...
60 soixante
...
70 सोइक्सांटे-डिक्स (शाब्दिक रूप से साठ दस)
71 soixante et onze
...
80 क्वाट्रे-विन्ग (नोट एस; शाब्दिक चार बिसवां दशा)
81 क्वाटर-विन्ग-अन (हाइफ़न पर ध्यान दें)
...
90 क्वाटर-विन्ग-डिक्स
91 क्वाटर-विन्ग-ऑनज़
...
99 क्वाटर-विन्ग्ट-डिक्स-नेफ (4 * 20 + 10 + 9)
100 प्रतिशत

पूरी सूची के लिए, http://quizlet.com/996950/ ( http://www.webcitation.org/6RNppaJx0 ) का पालन करें ।

आगे के नियम / स्पष्टीकरण

  • संख्या 1 में समाप्त होने पर हमेशा EXCEPT शब्द के बीच एक हाइफ़न होगा।
  • 1 में नंबर समाप्त होता है, शब्द जब एट (अर्थ और ) पहले जोड़ा जाता है संयुक्त राष्ट्र या Onze । (31 = ट्रेंट एट अन)
  • हालाँकि, 81 और 91 को अन्य संख्याओं के समान स्वरूपित किया गया है। (-१ = क्वाट्रे-विन्ग्ट-उन)
  • 60 की उम्र में, सिस्टम 10 से बेस 20 तक स्विच करता है।
  • इस बारे में वेब पर कुछ छोटी विसंगतियां हैं; प्रश्नों के लिए ऊपर दी गई सूची का संदर्भ लें।
  • डिफ़ॉल्ट रूप से मना किए गए लूपोल्स की अनुमति नहीं है।
  • बाहरी स्रोत जैसे कि वेबसाइट, साथ ही किसी भी लाइब्रेरी, एपीआई, फ़ंक्शंस, या जैसे कि संख्याओं को संख्याओं में बदलना या फ्रेंच में अनुवाद करने की अनुमति नहीं है, का उपयोग करने की अनुमति नहीं है।
  • यह , इसलिए सबसे कम बाइट के साथ उत्तर जीतता है।
  • यदि उपलब्ध है, तो कृपया अपने कोड के आसान परीक्षण के लिए ऑनलाइन कंपाइलर से लिंक करें।

इनपुट

  • इनपुट से लिया जाएगा, हालांकि आपकी भाषा इनपुट लेती है। (एसटीडीआईएन, कमांड लाइन, आदि)
  • इनपुट एक एकल स्ट्रिंग होगा, जिसमें 0 और 100 समावेशी (अग्रणी शून्य वैकल्पिक) के बीच पूरी संख्या शामिल होगी।
  • आप मान सकते हैं कि इनपुट हमेशा अच्छी तरह से बनेगा।

उत्पादन

  • परिणाम आपकी भाषा के लिए सबसे सुविधाजनक विधि का उत्पादन होगा। (STDOUT, संवाद बॉक्स, आदि)
  • आउटपुट में मामला मायने नहीं रखता।

उदाहरण

इन के खिलाफ अपने कोड का परीक्षण करें:

इनपुट आउटपुट
-------------
0 ज़ीरो
18 डिक्स-हूट
51 सिनकैंटे एट अन
80 क्वाटर-विन्ग
91 क्वाटर-विन्ग-ऑनज़
99 क्वाटर-विन्ग-डिक्स-नेफ

3
ध्यान दें कि फ्रेंच भाषी बेल्जियम के लोग "सेप्टेन्ते", "ऑक्टेंट" और "नॉनटेन्थ" का उपयोग सोइक्सेंटे-डिक्स, क्वाट्रे-विन्ग, क्वाट्रे-विन्ग्ट-डिक्स के बजाय करते हैं। इसका उपयोग प्राचीन बेल्जियम की कॉलोनी में किया जाना चाहिए।
इमैनुएल

8
फ्रेंच में ऐसा करने की प्रतिभा के लिए +1। जैसा कि मेरे एक जर्मन सहयोगी ने कहा: "जर्मन पीछे की ओर संख्या कहते हैं। लेकिन फ्रांसीसी को समझने के लिए, आपको एक कैलकुलेटर की आवश्यकता है।"
लेवल रिवर सेंट

1
ऐसा लगता है कि 0-100 की रेंज में ज़ीरो एकमात्र उच्चारण संख्या है। यह मानक ASCII वर्ण नहीं है। मैं किसी भी प्रारूप (कोड पृष्ठ 437, UTF-8, आदि) को मान सकता हूं जो इस चरित्र को आउटपुट कर सकता है।
लेवल रिवर सेंट

1
@ नियम नियम "आप मान सकते हैं कि इनपुट हमेशा अच्छी तरह से बनेगा," इसलिए इनपुट> 100 किसी भी व्यवहार का परिणाम हो सकता है।
निन्जाबियरमोनकी

3
फ्रेंच प्रणाली के पीछे कोई तर्क नहीं है। मुझे यकीन है कि 99% फ्रेंच चेक में एक गलती है, यह 100 के बाद भी अधिक जटिल है। संयुग्मन भी एक बुरा सपना है। मुझ पर भरोसा करो, मैं फ्रेंच हूं।
माइकल एम।

जवाबों:


7

जावास्क्रिप्ट (ईएस 6) 318 321

बग फिक्स (प्रमुख 0s का प्रबंधन) और अधिक गोल्फ को संपादित करें

ऊँट केस ट्रिक का श्रेय @ Core1024

पॉपअप के माध्यम से इनपुट / आउटपुट के साथ

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

फायरफॉक्स कंसोल या फायरबग में टेस्ट करने के लिए

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: Zéro, 1: Un, 2: Deux, 3: Trois, 4: Quatre, 5: Cinq, 6: छह, 7: Sept, 8: Huit, 9: Neuf,
10: डिक्स, 11: ओन्ज़, 12: डोज़, 13: ट्रेइज़, 14: क्वेट्ज़े, 15: क्विन्ज़, 16: सीज़, 17: डिक्स-सेप्ट, 18: डिक्स-हच, 19: डिक्स-न्यूफ़,
20: विन्ग, 21: विन्ग्ट एट उन, 22: विन्ग्ट-ड्यूक्स, 23: विन्ग्ट-ट्रोईस, 24: विन्ग्ट-क्वाट, 25: विन्ग-सिनक, 26: विन्ग-सिक्स, 27: विन्ग-सेप्ट, 28: विन्ग- ह्यूइट, 29: विन्ग-नेउफ़,
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: सिनकांटे- 58 हूईट, 59: सिनकांटे-नेफ,
60: सोइक्सांटे, 61: सोइक्सांटे एट अन, 62: सोइक्सांटे-ड्यूक्स, 63: सोइक्सांटे-ट्राइस, 64: सोइक्सांटे-क्वाट, 65: सोइक्सांटे-सिनक, 66: सोइक्सांटे-सिक्स, 67: सोइक्सांटे-सेप्ट, 68: सोइक्सांटे- हूईट, 69: सोइक्सांटे-नूफ़,
०: सोइक्सांटे-डिक्स, et१: सोइक्सांटे एट ओन्ज़, -२: सोइक्सांटे-डोज़, -३: सोइक्सांटे-ट्रेइज़, 74४: सोइक्सांटे-क्वेट्ज़े, -५: सोइक्सांटे-क्विन्ज़, -६: सोइक्सांटे-सीज़ेज़,--: सोइक्सांटे-डिक्स-सेप्ट, 78: सोइक्सांटे-डिक्स-हूट, 79: सोइक्सांटे-डिक्स-नेफ,
०: क्वाट्रे-विंग्ट, V१: क्वाट्रे-विंट्ट-उन, Qu२: क्वाट्रे-विन्ग-डेक्स, Qu३: क्वाट्रे-विंट्ट-ट्रोइस, Qu४: क्वाट्रे-विंट्ट-क्वाट, -५: क्वाटर-विंग्ट-सिनक, :६: क्वाट्रे- विन्ग्ट-सिक्स, 87: क्वाट्रे-विन्ग-सेप्ट, 88: क्वाट्रे-विन्ग-ह्यूट, 89: क्वाट्रे-विन्ग-नेउफ,
90: क्वाट्रे-विन्ग-डिक्स, 91: क्वाट्रे-विन्ग-ऑनज़, 92: क्वाट्रे-विन्ग्ट-डोज़, 93: क्वाट्रे-विन्ग-ट्रेइज़, 94: क्वाट्रे-विन्ग-क्वेट्ज़े, 95: क्वाट्रे-विन्ग-क्वेट्ज़, 95: क्वाट्रे-विन्ग-क्विन्ज़, 96: क्वाट्रे-विन्ग-सीज़, 97: क्वाट्रे-विन्ग-डिक्स-सेप्ट, 98: क्वाट्रे-विन्ग-डिक्स-हच, 99: क्वाट्रे-विन्ग-डिक्स-नेफ 
"प्रतिशत"

2
ऊंट मामले के साथ कूल चाल!
9

@tomsmeding वास्तव में इतना अच्छा है कि मेरे द्वारा तैयार नहीं किया गया है (पोस्ट में क्रेडिट जोड़ा गया)
edc65

@ edc65 क्या आपको बुरा लगा अगर मैं उसके साथ अपने रूबी जवाब को बेहतर बनाने की कोशिश करूं? मैंने यह भी नहीं देखा कि जब मैंने लिखा था तो केस-असंवेदनशील आउटपुट की अनुमति है। ^ ^
मार्टिन एंडर

@ मार्टिनबटनर बेशक आप
edc65

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नित्पिकी से घृणा की जा सकती है, लेकिन अंत में एक s के साथ quatre-vingts का उत्पादन करना चाहिए।
निन्जाबियरमोनकी

@ एचएसएल ने तय किया और थोड़ा छोटा किया।
मार्टिन एंडर

5

पायथन - 344 (348) (380) (445) (537) बाइट्स

गोल्फ प्रक्रिया में उनकी मदद के लिए gr, Ray और isaacg का धन्यवाद।

कोड में प्रारंभिक शब्दकोष की परिभाषा और एक सूची की समझ शामिल होती है जो शब्दकोश के तत्वों के जंक्शन के साथ रिक्त स्थान को भरती है।

आप 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 की संख्या में असंबद्ध तत्वों की आवश्यकता होती है, इसलिए संघर्ष घटते हुए इस तरह के समारोह का निर्माण किया गया है।


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()))
जीआर

जिस 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
एक टाइपो है: ciquante , एक एन गायब है।
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। Vim नहीं ढूंढा जा सका, न ही आप।
9

@tomsmeding क्या अफ़सोस है! मेरे अंतिम संपादन के बाद विम गायब हो गया।
रे

1

दे घुमा के, ४५६ ४४० ४२१ 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()])

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