মুকুট শত করুণি মুকুট


26

আমি লক্ষ্য করেছি যে একটি নির্দিষ্ট গেমের একটি অদ্ভুত লাইফ কাউন্টার রয়েছে, যা থামার পরিবর্তে 999একটি নতুন অঙ্ক অর্জন করেছে - পরের সংখ্যাটি মুকুট শত বা 👑00মুকুট পরে 👑99এসেছিল শত করুণা ( 👑👑0) এবং শেষ সংখ্যাটি পরে মুকুট👑👑9 ছিল শত করুণ মুকুট বা 👑👑👑যা দশমিক দশমিক 1110 হবে।

আপনার কাজটি এমন কোনও প্রোগ্রাম বা কোনও ক্রিয়াকলাপ লিখতে হয় যা এই কাউন্টারটিকে আউটপুট করে

পরিসীমা থেকে পূর্ণসংখ্যা দেওয়া [0,1110](উভয় প্রান্তে অন্তর্ভুক্ত), যেখানে তিনটি অক্ষরের স্ট্রিং আউটপুট দেয়

  • প্রতিটি চরিত্র তালিকা থেকে 0123456789👑
  • মুকুট (👑) কেবলমাত্র বাম দিকের চরিত্র হিসাবে উপস্থিত হতে পারে বা যখন তার বামে মুকুট থাকে
  • যখন এই সংখ্যাটি দশমিক সংখ্যা হিসাবে পড়ে তবে মুকুট হিসাবে গণনা করা হয় 10, আপনি আসল নম্বরটি ফিরে পাবেন back

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

   0 → "000"
  15 → "015"
 179 → "179"
 999 → "999"
1000 → "👑00"
1097 → "👑97"
1100 → "👑👑0"
1108 → "👑👑8"
1110 → "👑👑👑"

আপনি মুকুট পরিবর্তে যে কোনও অ দশমিক অক্ষর ব্যবহার করতে পারেন। সুন্দর মুদ্রণকে উত্সাহিত করতে, মুকুট চরিত্রটি (ইউটিএফ 8 বাইট সিকোয়েন্স "\ 240 \ 159 \ 145 \ 145") চারটির পরিবর্তে এক বাইট হিসাবে গণ্য হয়েছে। আপনার প্রোগ্রামটি বৈধ সীমার বাইরে সংখ্যার জন্য কাজ করতে হবে না।

এটি , তাই সংক্ষিপ্ত উত্তরটি, বাইটে পরিমাপ করা, জিতল!


4
ওহ, সুপার মারিও থ্রিডি ল্যান্ড!
দেউসোভি

2
@ দেউসোভি আমি আসলে ফলোআপ গেম, সুপার মারিও থ্রিডি ওয়ার্ল্ড সম্পর্কে ভাবছিলাম, তবে ভালভাবে অনুমান করা হয়েছে!
এঙ্গগুলি

3
এটি বোটি ম্যাকবোটফ্রিজের আইএমও নম্বর হওয়া উচিত।
মিস্টার লিস্টার

বোনাসটি কোডে মুকুট সংখ্যা দ্বারা গুণিত হয়েছে, তাই না?
এরিক আউটগলফার

3
@ জেফজেইটলিন এটি একটি অপ্রয়োজনীয় দশমিক সিস্টেম, যেখানে সংখ্যার একাধিক প্রতিনিধিত্ব থাকতে পারে (এমনকি নেতৃস্থানীয় জিরো উপেক্ষা করে)। মুকুটটি তখন অবাক করা উপাদান হিসাবে সংরক্ষণ করা হয়, কেবল যখন প্রয়োজন তখনই ব্যবহৃত হয়।
অ্যাঙ্গস

উত্তর:


2

05 এ বি 1 ই , 20 18 বাইট

₄‹i₄+¦ëTð.;„1 „  :

মুকুট জন্য স্পেস ব্যবহার করে।

এটি অনলাইনে চেষ্টা করুন বা সমস্ত পরীক্ষার কেস যাচাই করুন

ব্যাখ্যা:

₄‹i               # If the (implicit) input is smaller than 1000:
   ₄+             #  Add 1000 to the (implicit) input
     ¦            #  And remove the leading 1 (so the leading zeros are added)
                  #   i.e. 17 → 1017 → "017"
  ë               # Else:
   Tð.;           #  Replace the first "10" with a space " "
                  #   i.e. 1010 → " 10"
                  #   i.e. 1101 → "1 1"
                  #   i.e. 1110 → "11 "
       1   :    #  Replace every "1 " with "  " (until it no longer changes)
                  #   i.e. " 10" → " 10"
                  #   i.e. "1 1" → "  1"
                  #   i.e. "11 " → "   "


9

জাভাস্ক্রিপ্ট (ES6),  62 46  44 বাইট

@ নয়েলহোফের জন্য 2 বাইট সংরক্ষণ করা হয়েছে

xঅক্ষর হিসাবে আউটপুট মুকুট ।

n=>(n+1e4+'').replace(/1+0/,'xxx').slice(-3)

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

কিভাবে?

আমরা 10000 যুক্ত করি , এটি একটি স্ট্রিংয়ে বাধ্য করি, /1+0/প্যাটার্নটি সন্ধান করি এবং এটির সাথে প্রতিস্থাপন করি xxx। অবশেষে, আমরা 3 টি পিছনে অক্ষর ফিরে আসি।

উদাহরণ:

0 "10000" "xxx000" "000"123 "10123" "xxx123" "123"1023 "11023" "xxx23" "x23"1103 "11103" "xxx3" "xx3"1110 "11110" "xxx" "xxx"


s.replace(/./g,`#`)ঝরঝরে ... আমার ছিলাম Array(s.length+1).join`#`, আর আমার রেইগেক্সও বেশি ছিল! দুর্দান্ত কাজ, +1
মিস্টার এক্সকোডার

@ মিঃ এক্সকোডার এটি আসলে একটি ভয়ানক ধারণা ছিল। তবে এটি ঠিক করতে এক বছরেরও বেশি সময় লেগেছিল। : ডি
আরনল্ড

8

শেক্সপিয়ার প্রোগ্রামিং ল্যাঙ্গুয়েজ , 763 692 690 689 683 বাইট

,.Ajax,.Ford,.Page,.Act I:.Scene I:.[Enter Ajax and Ford]Ford:Listen tothy!Ajax:You big big cat.Scene V:.Ajax:Remember the remainder of the quotient betweenI twice the sum ofa cat a big big cat.Ford:You be the quotient betweenyou twice the sum ofa cat a big big cat.Ajax:You be the sum ofyou a pig.Be you nicer zero?If solet usScene V.Ford:You big big cat.[Exit Ajax][Enter Page]Page:Recall.Ford:You be I.Scene X:.Page:Recall.Am I nicer zero?If notopen heart.If notlet usScene L.Ford:You big big big big big cat.Speak thy.Am I worse a cat?If soyou zero.Scene L:.[Exit Page][Enter Ajax]Ford:You be the sum ofyou a pig.Is you nicer a cat?[Exit Ajax][Enter Page]Ford:If solet usScene X.

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

" "মুকুট পরিবর্তে ব্যবহার করে। আরও 4 টি বাইটের ব্যয়ে, পরিবর্তে "দৃশ্যমান" চরিত্রটি দেখানোর জন্য এটি পরিবর্তন করা যেতে পারে।

ব্যাখ্যা:

,.Ajax,.Ford,.Page,.Act I:.Scene I:.[Enter Ajax and Ford]

    Boilerplate, introducing the characters.

Ford:Listen tothy!

    Input a value to Ajax.

Ajax:You big big cat.

    Set Ford's value to 4 (we will be pushing 4 digits from Ajax onto Ford's personal stack).

Scene V:.Ajax:Remember the remainder of the quotient betweenI twice the sum ofa cat a big big cat.Ford:You be the quotient betweenyou twice the sum ofa cat a big big cat.

    DIGIT-PUSHING LOOP: Push Ajax's last digit onto Ford's stack; divide Ajax by 10.

Ajax:You be the sum ofyou a pig.Be you nicer zero?If solet usScene V.

    Decrement Ford; loop until Ford is 0.

Ford:You big big cat.

    Set Ajax's value to 4 (we will pop 3 digits from Ford's stack in the next loop).

[Exit Ajax][Enter Page]Page:Recall.Ford:You be I.

    Pop the top value off Ford's stack, and store that into Page.
    Here, Page will contain 0 if there are no crowns to be drawn,
    and 1 if there are crowns to be drawn.

Scene X:.Page:Recall.Am I nicer zero?If notopen heart.If notlet usScene L.

    DIGIT-DRAWING LOOP: Pop the top value off of Ford's stack and set Ford equal to that value.
    If there are no crowns to be drawn, output Ford's literal value here, and skip the crown-drawing section.

Ford:You big big big big big cat.Speak thy.Am I worse a cat?If soyou zero.

    Draw crown.
    If we are drawing crowns, and Ford contains 0 here, then we are now done drawing crowns, and thus we store 0 into Page.
    (Put in one more "big" for the crown to look like an @ symbol.)

Scene L:.[Exit Page][Enter Ajax]Ford:You be the sum ofyou a pig.Is you nicer a cat?[Exit Ajax][Enter Page]Ford:If solet usScene X.

    Decrement Ajax; loop until Ajax is 1 (i.e. 3 times).


@ হেলো গুডবাই আপনাকে ধন্যবাদ, আমি কিছু জায়গা থেকে মুক্তি পেতে ভুলে গেছি।
জোশিআরয়ানডাব্লু

5

পাইথন 2 , 53 বাইট

হাটবাজার বন্ধ Arnauld জন্য -22 বাইট । পুনরাবৃত্তি এখনও জিতেছে, যদিও।

lambda k:re.sub("1+0","CCC",`k+10000`)[-3:]
import re

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

পাইথন 2 , 51 বাইট

এটি পরিবর্তে tsh এর পুনরাবৃত্ত পদ্ধতি প্রয়োগ করে । Ovs ধন্যবাদ 2 বাইট সংরক্ষণ করা

f=lambda n,p=1000:n/p and'C'+f(n-p,p/10)or`n+p`[1:]

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


আমি আমার জেএস উত্তরের সাথে 1 ম সমাধানটি একইভাবে আপডেট করে 54 বাইটস । যদিও পাইথনে এখনও পুনরাবৃত্তি জিতেছে বলে মনে হচ্ছে।
আরনাউল্ড

1
@ আরনাউল্ড ধন্যবাদ: ডি। এই সম্পাদনাটি সত্যই একটি এসজিআইটিডব্লিউ
মিঃ এক্সকোডার

নেলহেনফ তারপরে উল্লেখ করেছে যে 10000 যোগ করা আরও সহজবোধ্য প্যাটার্নে বাড়ে 1+0। সুতরাং এই 53 বাইট সংস্করণ।
আর্নল্ড

@ আরনাউল্ড ধন্যবাদ;) এটি বরং চিত্তাকর্ষক।
মিঃ এক্সকোডার


3

রেটিনা 0.8.2 , 41 বাইট

\b((.)|..)\b
$#2$*00$&
T`d`_#`(?=....)1+0

এটি অনলাইন চেষ্টা করুন! #S এর পরিবর্তে s ব্যবহার করে 👑। লিঙ্কে পরীক্ষার কেস অন্তর্ভুক্ত রয়েছে। ব্যাখ্যা:

\b((.)|..)\b
$#2$*00$&

প্যাড 1- এবং 2-অঙ্কের সংখ্যা তিন অঙ্কে।

T`d`_#`(?=....)1+0

14-অঙ্কের সংখ্যার শীর্ষস্থানীয় গুলি গুলি #এস এবং পরবর্তীটি মুছুন 0


3

জেলি , 19 বাইট - 0 = 19

<ȷ¬ȧDi0ɓ⁶ẋ⁹Ḋ;+ȷDḊṫʋ

একটি সম্পূর্ণ প্রোগ্রাম মুকুট হিসাবে একটি স্থান অক্ষর ব্যবহার করে ফলাফল মুদ্রণ।
(মোনাডিক লিংক হিসাবে পূর্ণসংখ্যার সংখ্যা এবং স্থানের অক্ষরের একটি মিশ্র তালিকা পাওয়া যায়)

এটি অনলাইন চেষ্টা করুন! অথবা পরীক্ষা-স্যুটটি দেখুন

... সম্ভবত একটি পুনরাবৃত্তি বাস্তবায়ন সংক্ষিপ্ত হবে।

কিভাবে?

<ȷ¬ȧDi0ɓ⁶ẋ⁹Ḋ;+ȷDḊṫʋ - Main Link: integer, N    e.g. 1010       or   10
 ȷ                  - literal 1000                  1000            1000
<                   - less than?                    0               1
  ¬                 - logical not                   1               0
    D               - to decimal list               [1,0,1,0]       [1,0]
   ȧ                - logical and                   [1,0,1,0]       0
      0             - literal zero                  0               0
     i              - first index - call this I     2               1  (0 treated as [0] by i)
       ɓ            - new dyadic chain with swapped arguments - i.e. f(N, I)
        ⁶           - literal space character       ' '             ' '
          ⁹         - chain's right argument        2               1
         ẋ          - repeat                        [' ',' ']       [' ']
           Ḋ        - dequeue                       [' ']           []
                  ʋ - last four links as a dyad - i.e. f(N, I)
             +ȷ     -   add 1000                    2010            1010
               D    -   to decimal list             [2,0,1,0]       [1,0,1,0]
                Ḋ   -   dequeue                     [0,1,0]         [0,1,0]
                 ṫ  -   tail from index (I)         [1,0]           [0,1,0]
            ;       - concatenate                   [' ',1,0]       [0,1,0]
                    - implicit print                " 10"           "010"

3

পাইথন 2 , 40 বাইট

lambda n:'%3s'%`10000+n`.lstrip('1')[1:]

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

কার্যকরী একটি ধারণা অনুরূপ জনাব Xcoder এর Regex ভিত্তিক উত্তর কিন্তু একটি Regex ছাড়া। আমরা একটি প্রযুক্তিগত Taiwan 1 এর অপসারণ 10000+nতারপর দৈর্ঘ্য 3. সেইসাথে পরবর্তী অক্ষরে, স্পেস দিয়ে প্যাড ফলাফলের অনুরূপ ovs এর সমাধান ব্যবহার lstripকিন্তু দুটি মামলা ছাড়াই।


2

পরিষ্কার , 87 বাইট

আউটপুট মুকুট ব্যবহার করে না (ব্যবহার করে c)।

import StdEnv,Text
$n#i=3-n/1000-n/1100-n/1110
=("ccc"+lpad(""<+n rem(10^i))i'0')%(i,9)

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

$ n                   // function $ of `n`
 # i =                // define `i` as (the number of digits that aren't crowns)
  3 -                 // three minus
  n / 1000 -          // 1 if first digit is crown
  n / 1100 -          // 1 if second digit is crown
  n / 1110            // 1 if third digit is crown
 = (                  // the string formed by
  "ccc" +             // prefixing three crowns to
  lpad (              // the padding of
   "" <+ n rem (10^i) // non-crown digits of `n`
  ) i '0'             // with zeroes
 ) % (i, 9)           // and removing the extra crowns

পরিষ্কার , 99 - 3 = 96 বাইট

এই মুকুট আছে।

import StdEnv,Text
$n#i=3-n/1000-n/1100-n/1110
=("👑👑👑"+lpad(""<+n rem(10^i))i'0')%(i*4,99)

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


দ্বিতীয় উত্তরের স্কোরটি কেবল 90.
পিপ্পারি


1

জাভা 10, 84 83 বাইট

n->{for(int p=100,t;p>0;n-=t%12*p,p/=10)System.out.printf("%c",t=n/p>9?46:48+n/p);}

@Th 'সি মন্তব্য বন্দরের । মুকুট পরিবর্তে
ব্যবহার .করে।

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

বিকল্প পদ্ধতির (84 (87-3) বাইট):

n->f(n,1000)String f(int n,int p){return n<p?(n+p+"").substring(1):"👑"+f(n-p,p/10);}

@Tsh 'জাভাস্ক্রিপ্ট এর উত্তর পোর্ট ।

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


1

এপিএল (ডায়ালগ ইউনিকোড) , 32 বাইট

1e3∘{⍵<⍺:1↓⍕⍵+⍺⋄'C',(⍵-⍺)∇⍨⍺÷10}

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

উপসর্গ সরাসরি ফাংশন।

@ Tsh এর জেএস উত্তর এর পোর্ট ।

কিভাবে:

1e3∘{⍵<⍺:1↓⍕⍵+⍺⋄'C',(⍵-⍺)∇⍨⍺÷10}  Main function, arguments  and  (⍵  input,   1000).
     ⍵<⍺:                           If ⍵<⍺
         1                         Drop (↓) the first element (1) of
                                   Format (⍕); 'stringify'
            ⍵+⍺                     ⍵+⍺
                                   else
                'C',                Concatenate (,) the literal 'C' with
                         ∇⍨         Recursive call (∇) with swapped arguments (⍨)
                    (⍵-⍺)  ⍺÷10     New arguments;   ⍵-⍺;   ⍺÷10



1

সি,  84  58 বাইট

25 বাইট সংরক্ষণ করার জন্য @ টিএসকে ধন্যবাদ এবং একটি বাইট সংরক্ষণের জন্য @ সেলিংক্যাটকে ধন্যবাদ!

f(n,p){for(p=1e3;p/=10;)n-=putchar(n/p>9?46:48+n/p)%12*p;}

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


1
f(n,p){for(p=1000;p/=10;)n-=putchar(n/p>9?46:48+n/p)%12*p;}
tsh



0

পরিষ্কার , 96 বাইট

আমি মনে করি সুপার মারিও 3 ডি ল্যান্ড, নিউ সুপার মাও ব্রোস 2, এবং সুপার মারিও 3 ডি ওয়ার্ল্ডের এই লাইফ কাউন্টার রয়েছে।

import StdEnv,Text
$n#i=3-n/1000-n/1100-n/1110
=("👑👑👑"+lpad(""<+n rem(10^i))i'0')%(i*4,99

আমি একমত ক্লিন

আমি প্রতারণা করছি না তা যাচাই করুন।


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