বহুভুজ উপসর্গ


17

বহুভুজগুলি তাদের যে দিকের রয়েছে তার সংখ্যা অনুসারে নামকরণ করা হয়েছে। একটি পেন্টাগনের 5 টি পক্ষ রয়েছে, একটি অষ্টভুজটির 8 টি পক্ষ রয়েছে। তবে তাদের নামকরণ কীভাবে? 248-পক্ষযুক্ত বহুভুজের নাম কী?

সমস্ত বহুভুজ প্রত্যয়িত হয় -gon। পাশের সংখ্যার উপর নির্ভর করে প্রতিটি বহুভুজের জন্য নির্দিষ্ট উপসর্গ রয়েছে। নিম্ন সংখ্যার জন্য এখানে উপসর্গ রয়েছে:

3 - tri
4 - tetra
5 - penta
6 - hexa
7 - hepta
8 - octa
9 - nona
10 - deca
11 - undeca
12 - dodeca
13 - triskaideca
14 - tetradeca
15 - pentadeca
16 - hexadeca
17 - heptadeca
18 - octadeca
19 - nonadeca
20 - icosa

21 থেকে 99 টি পক্ষের বহুভুজের একটি আলাদা সিস্টেম রয়েছে। দশ অঙ্কের উপসর্গটি ধরুন (বাম কলামে পাওয়া গেছে), অঙ্কগুলি (নীচে ডান কলাম) এবং তারপরে পেতে "কাই" স্টিক করুন (tens)kai(ones)gon

10 - deca        | 1 - hena
20 - icosi       | 2 - di
30 - triaconta   | 3 - tri
40 - tetraconta  | 4 - tetra
50 - pentaconta  | 5 - penta
60 - hexaconta   | 6 - hexa
70 - heptaconta  | 7 - hepta
80 - octaconta   | 8 - octa
90 - nonaconta   | 9 - nona

3-অঙ্কযুক্ত পার্শ্বযুক্ত বহুভুজগুলির নাম একই ধরণের। 100-পার্শ্বযুক্ত বহুভুজকে হেক্টোগন বলা হয়। শত অঙ্কটি ধরুন, এটির জন্য অঙ্কগুলির জন্য কলামে এটি সন্ধান করুন, তারপরে একটি "হেক্টর" তার ডানদিকে আটকে দিন। এখন দশ এবং বেশী বন্ধ সংখ্যা উপরে মত: (hundreds)hecta(tens)kai(ones)gon। শত স্থানের অঙ্কটি যদি 1 হয় তবে "হেক্টা" এর উপসর্গটি রাখবেন না; যদি স্থানগুলি 0 হয় তবে (বিভাগ) বিভাগটি বাদ দিন।

সুতরাং, একটি পূর্ণসংখ্যা দেওয়া (3 <= n <= 999), এন-পার্শ্বযুক্ত বহুভুজের নামটি ফিরিয়ে দিন। n-gonএকটি বৈধ উত্তর নয়: পি

সমস্ত কোড গল্ফের মতো, সংক্ষিপ্ততম কোডের জয়।


100 পার্শ্ব হেক্টোগন না হেক্টোগন? ১০০ এর উপরে দশকের অঙ্কটিও অস্পষ্ট। আমার ধারণা 110 এবং 120 হেক্টাহেনাকাইগন এবং হেক্টাডিকাইগন (বা হেক্টেএকোসাইকাইগন?)
উগোরেন

এছাড়াও, 101-পার্শ্ব "হেক্টাকাইহেনগন" (যেমন আমি আপনার বিধিগুলি থেকে বুঝতে পারি) বা "হেক্টেহেগন"?
ugoren

@ beary605 আমি ননা- ভুল বলে মনে করি। এটি লাতিন ভাষা থেকে এবং অন্যরা হেক্পা-, হেক্সা- গ্রীক থেকে আসা। এটি ennea- হওয়া উচিত। আমি জানি উইকিপিডিয়া বলে নোনগন ঠিক আছে!
ফেলিপা

@ ফিলিপা: আমি এটা নিয়ে থাকব কিনা তা নিয়ে আমি বিতর্ক করছিলাম ennea-, তবে আমি "এনগনন" এর চেয়ে "ননগন" বেশিবার শুনেছি, তাই আমি এটি নিয়েই গিয়েছিলাম।
beary605

@ ইউগোরেন: ১০০ - হেক্টাগন, এবং আমি দেখিনি যে আমার কাছে নেই deca, এটি উল্লেখ করার জন্য ধন্যবাদ। 110 - হেক্টেডিকাগন, 120 - হেক্টেএকোসিজাগন। 101 - হেক্টাকাইহেনগন।
beary605

উত্তর:


5

সি, 401 , 391

এখানে কিছু রেখে দেওয়া যাক তাই রেফারেন্সের জন্য কমপক্ষে একটি উত্তর রয়েছে :-)

char*s[]={"","hena","di","tri","tetra","penta","hexa","hepta","octa","nona","un","do","triskai","deca","icosi","tria","conta","kai","icosa","hecto","hecta","gon\n"};
p(i){printf(s[i]);}
t;n(i){
    if(i<10)
        p(i);   // ones
    else if(i<20){
        i-=10; 
        p(i+(i&&i<4)*9); // teens
        p(13); // "deca"
    }else if(i==20)
        p(18); // "icosa"
    else if(i==100)
        p(19); // "hecto"
    else{
        t=i/100;
        p(t>1?t:0); // hundreds
        p(t?20:0);  // "hecta"
        i%=100;
        t=i/10;
        p(t+(t&&t<4)*12); // tens
        p(t>2?16:0);      // "conta"
        i%=10;
        p(i?17:0); // "kai"
        p(i);      // ones
    }
    p(21); // "gon\n"
}

এর সাথে পরীক্ষা করুন:

main(){
    for(int i=3;i<=999;i++){
        printf("%3d: ",i);n(i);
    }
}

আউটপুট সাবসেট:

  3: trigon
  4: tetragon
  5: pentagon
  6: hexagon
  7: heptagon
  8: octagon
  9: nonagon
 10: decagon
 11: undecagon
 12: dodecagon
 13: triskaidecagon
 14: tetradecagon
 15: pentadecagon
 16: hexadecagon
 17: heptadecagon
 18: octadecagon
 19: nonadecagon
 20: icosagon
 21: icosikaihenagon
 22: icosikaidigon
 23: icosikaitrigon
...
 99: nonacontakainonagon
100: hectogon
101: hectakaihenagon
102: hectakaidigon
103: hectakaitrigon
104: hectakaitetragon
105: hectakaipentagon
106: hectakaihexagon
107: hectakaiheptagon
108: hectakaioctagon
109: hectakainonagon
110: hectadecagon
111: hectadecakaihenagon
...
997: nonahectanonacontakaiheptagon
998: nonahectanonacontakaioctagon
999: nonahectanonacontakainonagon

1
খুশী হলাম। আপনি প্রতিস্থাপন করতে পারেন if..elseসঙ্গে ?:(এবং ;সঙ্গে ,কিছু অক্ষর সংরক্ষণ করতে)। এছাড়াও t>1&&p(t)এবং অনুরূপ পরিবর্তনগুলি সহায়তা করতে পারে। এবং আমি নিশ্চিত নই, তবে সম্ভবত আপনি পুনর্বিন্যাস করতে পারেন sযাতে আপনার ব্যবহার করা ধ্রুবকগুলি একক অঙ্কের হয়।
ugoren

1

জাভাস্ক্রিপ্ট - 405 386

সংস্করণ 1: (405 অক্ষর)

i=prompt(),o='0hena0di0tri0tetra0penta0hexa0hepta0octa0nona'.split(0),d='0W0icosi0triaQ0tetraQ0pentaQ0hexaQ0heptaQ0octaQ0nonaQ'.split(0),t='W0unW0doW0triskaiW0tetraW0pentaW0hexaW0heptaW0octaW0nonaW0icosa'.split(0),x=('000'+i).substr(-3).split('');alert((i<10?o[i]:i<21?t[i-10]:i==100?'hecto':(i<100?'':i<200?'hecta':o[x[0]]+'hecta')+d[x[1]]+'kai'+o[x[2]]).replace(/Q/g,'conta').replace(/W/g,'deca')+'gon')

সংস্করণ 2: (386 টি অক্ষর)

i=prompt(),p='0tetra0penta0hexa0hepta0octa0nona',o='0hena0di0tri'+p,t=('W0unW0doW0triskai'+p.replace(/0/g,'W0')+'W0icosa').split(0),x=('000'+i).substr(-3).split(''),o=o.split(0);alert((i<10?o[i]:i<21?t[i-10]:i==100?'hecto':(i<100?'':i<200?'hecta':o[x[0]]+'hecta')+('0W0icosi0tria'+p.replace(/0/g,'Q0')+'Q').split(0)[x[1]]+'kai'+o[x[2]]).replace(/Q/g,'conta').replace(/W/g,'deca')+'gon')

আউটপুট উদাহরণ:

3: trigon
4: tetragon
5: pentagon
6: hexagon
7: heptagon
8: octagon
9: nonagon
10: decagon
11: undecagon
12: dodecagon
13: triskaidecagon
14: tetradecagon
15: pentadecagon
16: hexadecagon
17: heptadecagon
18: octadecagon
19: nonadecagon
20: icosagon
21: icosikaihenagon
22: icosikaidigon
23: icosikaitrigon
99: nonacontakainonagon
...
100: hectogon
101: hectakaihenagon
102: hectakaidigon
103: hectakaitrigon
104: hectakaitetragon
105: hectakaipentagon
106: hectakaihexagon
107: hectakaiheptagon
108: hectakaioctagon
109: hectakainonagon
110: hectadecakaigon
111: hectadecakaihenagon
...
997: nonahectanonacontakaiheptagon
998: nonahectanonacontakaioctagon
999: nonahectanonacontakainonagon 

0

কোবরা - 370 বাইট

এটি বর্তমানে একটি ফাংশন, তবে যদি এটি অনুমোদিত না হয় তবে আমি এটি পরিবর্তন করব।

def f(x) as String
    o='. hena di tri tetra penta hexa hepta octa nona'.split
    o[0],t,h,d='',['','deca','icosci','triconta'],['','hecta','dihecta','trihecta'],['undeca','dodeca','triskaideca']
    for z in 4:10,t,h,d=t+[o[z]+'conta'],h+[o[z]+'hecta'],d+[o[z]+'deca']
    for z in 10,t[z]+='kai'
    return if(x-100,h[x//100]+if(10<x<20,d[x-11],t[x%100//10]+o[x%10]),'hecto')+'gon'

এবং কোনও কারণে কোবরা হাইলাইটার //একটি মন্তব্য হিসাবে সেট করেছে, যা ভুল।

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