এই বহুভুজের কতটি দিক রয়েছে?


13

সুতরাং 1 ম শ্রেণিতে গণিতে আপনি বহুভুজের নাম শিখুন। তিনটি দিক একটি ত্রিভুজ, 4 একটি বর্গক্ষেত্র, এবং 5 একটি পেন্টাগন। তবে ১ ম শ্রেনীর অনার্সে আপনি কিছুটা এগিয়ে যান।

আপনার চ্যালেঞ্জ

বহু পক্ষের উপরে বহুভুজগুলির জন্য একটি নামকরণ ব্যবস্থা রয়েছে, তাই নির্বিচারে বৃহত বহুভুজগুলির একটি নাম রয়েছে।

আপনার কাজ হ'ল এমন একটি প্রোগ্রাম বা একটি ফাংশন লিখুন যা বহুভুজের নাম ইনপুট হিসাবে গ্রহণ করে এবং তার পাশের সংখ্যাকে আউটপুট করে

বহু ব্যাক্তির নামগুলি কয়েকটি ব্যতিক্রম সহ এই উইকিপিডিয়া নিবন্ধের বাম কলামে হিসাবে সংজ্ঞায়িত করা হয়েছে ।

তিন পার্শ্বযুক্ত বহুভুজকে ত্রিগুনের পরিবর্তে ত্রিভুজ বলা হবে এবং 4 পার্শ্বযুক্ত বহুভুজ একটি টেট্রাগনের পরিবর্তে একটি বর্গক্ষেত্র হবে (ধরে নিন যে সমস্ত বহুভুজগুলি নিয়মিত are) অন্যথায়, নিবন্ধে নামগুলি ব্যবহার করা হবে।

বিধি

  • ইনপুট একটি স্ট্রিং মান হবে।
  • প্রোগ্রামটির ফলাফলটি STDOUT এ মুদ্রণ করা উচিত (বা এটি একটি পূর্ণসংখ্যা ফেরত দেওয়া উচিত)
  • কেবল 3 থেকে 99 এর মধ্যে বহুভুজগুলি ইনপুট করা হবে।
  • আপনার প্রোগ্রাম অবশ্যই সমস্ত পরীক্ষার কেস সন্তুষ্ট করতে হবে।
  • কোনও মানক ফাঁক নেই।
  • প্রোগ্রামটি অবৈধ / সীমার ইনপুটগুলির জন্য কিছু করার দরকার নেই।
  • স্কোরিং বাইটে রয়েছে। যেহেতু এটি , তাই সংক্ষিপ্ততম প্রোগ্রামের জয়।

পরীক্ষার মামলা

3   triangle
4   square
5   pentagon
10  decagon
11  hendecagon
12  dodecagon
13  triskaidecagon
20  icosagon
21  icosikaihenagon
22  icosikaidigon
34  triacontakaitetragon
35  triacontakaipentagon
36  triacontakaihexagon
47  tetracontakaiheptagon
48  tetracontakaioctagon
49  tetracontakaienneagon
64  hexacontakaitetragon
80  octacontagon
81  octacontakaihenagon
99  enneacontakaienneagon

লিডারবোর্ড

নিয়মিত লিডারবোর্ড এবং ভাষার দ্বারা বিজয়ীদের একটি সংক্ষিপ্ত বিবরণ উভয়ই তৈরি করতে এখানে একটি স্ট্যাক স্নিপেট।

আপনার উত্তরটি প্রদর্শিত হয়েছে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেমপ্লেটটি ব্যবহার করে আপনার উত্তরটি শিরোনাম দিয়ে শুরু করুন:

# Language Name, N bytes

Nআপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:

# Ruby, <s>104</s> <s>101</s> 96 bytes

যদি আপনি নিজের শিরোনামে একাধিক সংখ্যা অন্তর্ভুক্ত করতে চান (যেমন আপনার স্কোর দুটি ফাইলের সমষ্টি বা আপনি আলাদাভাবে দোভাষী পতাকা দণ্ডের তালিকা করতে চান), নিশ্চিত করুন যে আসল স্কোরটি শিরোনামের শেষ সংখ্যা:

# Perl, 43 + 2 (-p flag) = 45 bytes

আপনি ভাষাটির নামটিকে একটি লিঙ্কও বানাতে পারেন যা লিডারবোর্ড স্নিপেটে প্রদর্শিত হবে:

# [><>](http://esolangs.org/wiki/Fish), 121 bytes


1
সমস্ত টিট্রাগনগুলি স্কোয়ার নয়।
ডেনিস

@ ডেনিস তবে সমস্ত নিয়মিত টেট্রাগন হ'ল ।
ড্যানিয়েল এম।

নোট করুন যে FryAmTheEggman যে প্রশ্নটি দেখিয়েছে তা বিপরীত দিকে যায়: এই প্রশ্নটি নাম থেকে একদিকে ঘুরতে যায়, যখন পূর্বেরটি একটি সংখ্যা থেকে অন্য নামে যায়।
isaacg

বন্ধ-ভোটার: এই প্রশ্ন আছে না একই।
ড্যানিয়েল এম।

উত্তর:


7

রুবি, 405 207 বাইট

207 বাইট

->a{i,n=0,"#{a}";[/ontag|sa/,/(he|mo)n/,/di|do|ic/,/tri/,/tet|q/,/pe/,/hex/,/hep/,/oc/,/enn/,/^d/,/1d/,/2d/].each{|r|n.gsub!(r,i.to_s);i+=1;};n=n.gsub(/ide/,'!').gsub(/[a-z]/,'');n='1'+n[0] if /!/=~n;n.to_i}

অবরুদ্ধ 207

    sides = ->a{
          i,n=0,"#{a}";
          # Match patterns for zero, one, two, etc. 
          # Each regex corresponds to a digit.
          # Special patterns for 10, 11 and 12.
          [/ontag|sa/,/(he|mo)n/,/di|do|ic/,/tri/,
             /tet|q/,/pe/,/hex/,/hep/,/oc/,/enn/,
             /^d/,/1d/,/2d/].each {|r| n.gsub!(r, i.to_s);i+=1;};
          n=n.gsub(/ide/,'!').  # Change part of the teens to exclamation
              gsub(/[a-z]/,''); # Remove remaining unmatched letters
          n='1'+n[0] if /!/=~n; # Fixup the teens
          n.to_i
      }

405 বাইট:

->a{d=%w(on hen d tr te p hex hep oc e);case a when/de/ then %w(de hen do tr te p hex hep o e ).index(a[/^(he|t|d)?./]||:de)+10;when/^([mdtspoe]|he[xp]).{,7}$/ then %w(z m d t s p hex hep o e).index($1);when/^i.*[ks]a.([dep]|on|oc|tr|te|hen|hex|hep)/ then d.index($1)+20;when/^((he|t)?[^ht]).*nta(kai)?([gdpoe]|tr|te|hen|hex|hep)/ then (3+%w(tr te p hex hep o e).index($1))*10+(d.index($4)||0)else 0;end}

অবহেলিত 405

def sides(a)
  d=%w(on hen d tr te p hex hep oc e);
  case a 
    when /de/ then %w(de hen do tr te p hex hep o e ).index(a[/^(he|t|d)?./]||:de)+10;
    when /^([mdtspoe]|he[xp]).{,7}$/ then %w(z m d t s p hex hep o e).index($1);when/^i.*[ks]a.([dep]|on|oc|tr|te|hen|hex|hep)/ then d.index($1)+20;
    when /^((he|t)?[^ht]).*nta(kai)?([gdpoe]|tr|te|hen|hex|hep)/ then (3+%w(tr te p hex hep o e).index($1))*10+(d.index($4)||0)
    else 0;
  end
end

সেরা গল্ফ জমা নাও হতে পারে, তবে এটি একটি অস্পষ্ট কোড প্রতিযোগিতা জিততে পারে!

পরীক্ষা

polygons = %w(
  gone
  monogon digon
  triangle square
  pentagon hexagon  
  heptagon octagon  
  enneagon decagon  
  hendecagon dodecagon
  triskaidecagon tetrakaidecagon
  pentakaidecagon hexakaidecagon
  heptakaidecagon octakaidecagon
  enneakaidecagon icosagon
  icosikaihenagon icosikaidigon
  icosikaitrigon icosikaitetragon
  icosikaipentagon icosikaihexagon
  icosikaiheptagon icosikaioctagon
  icosikaienneagon triacontagon  
  triacontakaihenagon triacontakaidigon
  triacontakaitrigon triacontakaitetragon
  triacontakaipentagon triacontakaihexagon
  triacontakaiheptagon triacontakaioctagon
  triacontakaienneagon tetracontagon
  tetracontakaihenagon tetracontakaidigon
  tetracontakaitrigon tetracontakaitetragon
  tetracontakaipentagon tetracontakaihexagon
  tetracontakaiheptagon tetracontakaioctagon
  tetracontakaienneagon pentacontagon
  pentacontakaihenagon pentacontakaidigon
  pentacontakaitrigon pentacontakaitetragon
  pentacontakaipentagon pentacontakaihexagon
  pentacontakaiheptagon pentacontakaioctagon
  pentacontakaienneagon hexacontagon
  hexacontakaihenagon hexacontakaidigon
  hexacontakaitrigon hexacontakaitetragon
  hexacontakaipentagon hexacontakaihexagon
  hexacontakaiheptagon hexacontakaioctagon
  hexacontakaienneagon heptacontagon
  heptacontakaihenagon heptacontakaidigon
  heptacontakaitrigon heptacontakaitetragon
  heptacontakaipentagon heptacontakaihexagon
  heptacontakaiheptagon heptacontakaioctagon
  heptacontakaienneagon octacontagon
  octacontakaihenagon octacontakaidigon
  octacontakaitrigon octacontakaitetragon
  octacontakaipentagon octacontakaihexagon
  octacontakaiheptagon octacontakaioctagon
  octacontakaienneagon enneacontagon
  enneacontakaihenagon enneacontakaidigon
  enneacontakaitrigon enneacontakaitetragon  
  enneacontakaipentagon enneacontakaihexagon
  enneacontakaiheptagon enneacontakaioctagon
  enneacontakaienneagon
  )

sides =  ->a{i,n=0,"#{a}";[/ontag|sa/,/(he|mo)n/,/di|do|ic/,/tri/,/tet|q/,/pe/,/hex/,/hep/,/oc/,/enn/,/^d/,/1d/,/2d/].each{|r|n.gsub!(r,i.to_s);i+=1;};n=n.gsub(/ide/,'!').gsub(/[a-z]/,'');n='1'+n[0] if /!/=~n;n.to_i}

polygons.each {|p| puts "#{p} -> #{sides.call(p)}"; }

4

পাইথন 2 - 357 368 বাইট

যেহেতু সিস্টেমে একমাত্র আসল ব্যতিক্রমগুলি "বর্গক্ষেত্র", "হেনডিকাগন" এবং "ডডিকাগন", তাই অন্যান্য সমস্ত সংখ্যা তাদের প্রথম অঙ্কের জন্য "কাই" এবং "অঙ্ক" / "ডেকা" থাকার একই ধরণটি অনুসরণ করে।

import sys;s=input();e=eval;x='y(str(10*i(b)+i(a)))';y=sys.exit;a=b='0';l=['0','hen','di','tri','tet','pen','hex','hep','oct','enn'];i=l.index
if'kai'in s:
 a=[f for f in l if f in s[-8:]][0]
if'ca'in s:
 if l[1]in s:y("11")
 if'do'in s:y("12")
 b=l[1];e(x)
elif'co'in s:
 l[2]='ico';b=[f for f in l if f in s[:5]][0];e(x)
if'sq'in s:y("4")
y(str(i(s[:3])))

ব্যাখ্যা:

import sys;s=input();e=eval;x='y(str(10*i(b)+i(a)))';y=sys.exit;a=b='0'
l=['0','hen','di','tri','tet','pen','hex','hep','oct','enn']
# List of all defining numerals, index equals the number.
i=l.index

if'kai'in s:                       # check if the input is a two-digit number 
                                   # with a second digit greater than 0
 a=[f for f in l if f in s[-8:]][0] # get the second digit, and store it.

if'ca'in s:                        # Special case for 10-19
 if l[1]in s:y("11")               # Exceptions 11 & 12 
 if'do'in s:y("12")                #
 b=l[1];e(x)
elif'co'in s:                      # All other two digit numbers
 l[2]='ico'
 b=[f for f in l if f in s[:5]][0] # Get the first digit, and store it
 e(x) 
if'sq'in s:y("4")                  # Exception "square"
y(str(i(s[:3])))                   # All other single digit numbers 

এটি 3-99 এর মধ্যে সমস্ত ইনপুটগুলির জন্য কাজ করে এবং ফলাফলটি কনসোলে মুদ্রণ করে।

আরও গল্ফযোগ্য হতে পারে তবে এটি এখনই যতদূর যেতে পারি can

** সম্পাদনা: আমি ঠিক বুঝতে পেরেছি, এটি এসটিডিআরআরে প্রিন্ট করা হয়েছে, এসটিডিআউট নয়। স্থির কোডটি কিছুটা দীর্ঘ:

import sys;s=input();e=eval;x="10*i(b)+i(a)";y=sys.exit;a=b='0';l=['0','hen','di','tri','tet','pen','hex','hep','oct','enn'];i=l.index
if'kai'in s:a=[f for f in l if f in s[-8:]][0]
if'ca'in s:
 if l[1]in s:print"11"
 if'do'in s:print"12"
 b=l[1];print e(x);y()
elif'co'in s:l[2]='ic';b=[f for f in l if f in s[:5]][0];print e(x);y()
if'q'in s:print"4"
print(i(s[:3]))

আপনি কি qপরিবর্তে পরীক্ষা করে একটি বাইট সংরক্ষণ করতে পারেন sq?
নীল

হ্যাঁ, আপনি ঠিক বলেছেন। টাই
কিজাটা

আপনি সরান import sys;এবং ব্যবহার করুন y=exit। এটি একই জিনিস করে।
Rɪᴋᴇʀ

2

দারুচিনি গাম, 430 বাইট

0000000: 6c4c ce85 0d04 4108 05d0 6e36 9e5b 379a  lL....A...n6.[7.
0000010: 5977 f7f2 6f02 8410 fdbc 11fe 75f4 f9d2  Yw..o.......u...
0000020: 4eb5 e5c1 b9df f951 5b3e 6cf5 72e5 edba  N......Q[>l.r...
0000030: 5801 74f5 8729 3469 238c 602d 29c5 502f  X.t..)4i#.`-).P/
0000040: 4b8d 3181 aa2e 3139 b6b9 bac8 e440 b5ca  K.1...19.....@..
0000050: e082 5977 8e79 2fe2 c155 5f47 ae89 f76b  ..Yw.y/..U_G...k
0000060: a21e 5ab8 8f26 eaa5 85fb 694a a02f d713  ..Z..&....iJ./..
0000070: b36b 63ee cdb1 294c e408 553d 822b 701d  .kc...)L..U=.+p.
0000080: 249e 0836 47f3 c5b0 3a5a a07e ff88 4245  $..6G...:Z.~..BE
0000090: 1b5f 8bc4 d692 2916 c2fa 6809 98fd 79b9  ._....)...h...y.
00000a0: f2ef 9e0d 32ff 9baa 8b43 3982 288a a121  ....2....C9.(..!
00000b0: 35d4 c3fc 03b3 3f4b cbd2 1d3a 43ad d77f  5.....?K...:C...
00000c0: 1ef2 9fe1 bc44 1ce7 b862 39e1 8ee7 a43a  .....D...b9....:
00000d0: a653 ceb8 4eab 633b e38c efec d7f7 0060  .S..N.c;.......`
00000e0: dc04 0be3 a143 8c57 1563 1c67 2123 3c48  .....C.W.c.g!#<H
00000f0: 19c9 6066 94bb 9cd1 0c86 c6b8 4b1a fbf5  ..`f........K...
0000100: f546 9a37 c1d2 7ce8 48f3 a54a 9ac7 59d2  .F.7..|.H..J..Y.
0000110: 0c0f 9266 7a40 9ae5 2e69 b607 a439 ee92  ...fz@...i...9..
0000120: e67e fe6a 81d6 cd59 ce7a c87f cc7a 8928  .~.j...Y.z...z.(
0000130: eb50 8dac a0db 5849 17b1 8a6c 6135 5dc0  .P....XI...la5].
0000140: 1ab2 7db5 5fff 4100 fb26 58d8 0f1d 62bf  ..}._.A..&X...b.
0000150: 5419 fb28 1bd9 a1c1 ca4e 0633 bbd4 edec  T..(.....N.3....
0000160: 6630 b447 ddd2 decf bf56 a073 7396 739e  f0.G.....V.ss.s.
0000170: bf0c 735e 22ca 3954 2327 e836 4ed2 459c  ..s^".9T#'.6N.E.
0000180: 225b 384d 1770 866c dfec d785 02e0 de04  "[8M.p.l........
0000190: 0bf7 a143 dc97 2ae3 1e65 2337 3458 b9c9  ...C..*..e#74X..
00001a0: 60e6 96ba 9ddb 0c86 eea8 5bba fb1f       `.........[...

এই চ্যালেঞ্জের পরে দারুচিনি আঠা তৈরি হওয়ার পরে থেকে প্রতিযোগিতা নেই। এটি উত্স কোডের একটি হ্যাক্সডাম্প; আপনি এটি ব্যবহার করে বিপরীত করতে পারেন xxd -r

এটি অনলাইনে চেষ্টা করুন।

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