ছোট ছোট পাথরগুলিতে বড় শিলা করুন


22

পেষকদন্ত আপনাকে স্বাগতম।

আপনার কাজ হ'ল বড় শিলাগুলি নাকাল করে ছোট ছোট পাথরে পরিণত করা।

আকারের একটি বড় শৈল একটি ইনপুট নিন n > 3 এবং এটি নাকাল ।

সমস্ত শিলার আকার না হওয়া অবধি পাতাগুলি পেষকদন্তে নিক্ষেপ করে তাদের পিষে চালিয়ে যান 2

শিলা সর্বদা সমান ভাগের অংশে পিষে থাকে। গ্রাইন্ডিংয়ের ফলাফলটি বিজোড় হলে ফলাফলটি নিন - 1।

আপনি এগিয়ে যাওয়ার সাথে সাথে প্রতিটি গ্রাইন্ডিংয়ের আউটপুট মুদ্রণ করুন।

উদাহরণ

ইনপুট: 5

আউটপুট: 22

ফলাফল 2 আকারের দুটি শিলা

ইনপুট: 50

আউটপুট:

2424 //two rocks of size 24
12121212 //four rocks of size 12
66666666 //8 rocks of size 6
2222222222222222

ফলাফলটি 2 আকারের 16 টি শিলা

ইনপুট: 30

আউটপুট:

1414
6666
22222222

ফলাফল 2 আকারের 8 টি শিলা

এটি তাই সংক্ষিপ্ততম কোডটি জয়ী! মজা করো এবং শুভ কামনা!


আপনি এটা উপরে 3. হতে আশা করতে পারেন
jacksonecac

আমাদের কি আপনার ফর্ম্যাটটি ব্যবহার করতে হবে (সমস্ত সংখ্যা সংমিশ্রিত) বা আমরা তালিকার মতো জিনিসগুলি ব্যবহার করতে পারি? কিছু উত্তর পরিবর্তে এটি বলে মনে হচ্ছে।
14

যতক্ষণ আউটপুট প্রতিটি পুনরাবৃত্তি প্রদর্শন করবে ততক্ষণ বিন্যাসের উপরের মতো হওয়া দরকার না।
জ্যাকসোনাক

1
আমি বলব যে 2 ডি অ্যারে করে এবং 1 ডি করে না, তবে এটি আপনার পক্ষে ঠিক আছে।
জোনাথন অ্যালান

1
মেটা sensক্যমত্য অনুযায়ী চ্যালেঞ্জটিতে নির্দিষ্ট না করা থাকলে @ ব্যবহারকারী 902383 হয় ঠিক আছে । ইনপুট এবং আউটপুট হিসাবে, আবার উভয়ই ঠিক আছে - এই পোস্টটি দেখুন
জোনাথন অ্যালান

উত্তর:



8

COW, 297 291 বাইট

MoOMoOMoOMoOMoOMoOMoOMoOMoOMoOmoOMoOmoOmoOoommOoMoOMOOmoOMMMmoOMMMmoOOOOMoOmOoMOOMOomoOmoO
MOOMOomOoMOomoOmoomOoMMMOOOMoOmoOMMMmOomOomoomoOmoOMOOMOomOomOomOoMOomoOmoOmoOmoomOomOomOo
mOomOoMMMmoOMMMMOOMOomoOOOMmOomOoMoOmoOmoomOomOoMoomoOmoOmoOMOOMOoMOomoOMoOmOomoomoOMMMOOO
mOoMMMMMMmOoMMMMOomoo

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

কোড প্রতিটি নম্বরকে তার নিজস্ব লাইনে মুদ্রণ করে এবং অতিরিক্ত নিউলাইন দিয়ে পুনরাবৃত্তিকে পৃথক করে। এটি নিজেই প্রথম পুনরাবৃত্তি মুদ্রণ করে, তার পরে একটি নতুন লাইন। সুতরাং 5 এর ইনপুটটি এমন একটি আউটপুট দেয় যা 5 2 2শূণ্যের পরিবর্তে নিউলাইনগুলি বাদ দিয়ে দেখায় । জন্য নমুনা আউটপুট50 নীচে দেওয়া হল।

ব্যাখ্যা গাছ:

MoOMoOMoOMoOMoOMoOMoOMoOMoOMoOmoOMoOmoOmoOoom ;Store 10 in [0], 1 in [1], and integer input in [3]
mOoMoO                                        ;Store 1 in [2]
MOO                                           ;Loop while [2] is non-zero
   moOMMMmoOMMMmoOOOOMoOmOo                   ;   Copy [3] to [4], clear contents of [5], and store 1 in [5]
   MOO                                        ;   Loop while [4] is non-zero
      MOomoOmoO                               ;      Decrement 4 and move to 6
      MOO                                     ;      Loop while [6] is non-zero
         MOomOoMOomoO                         ;         Decrement [5] and [6]
      moo                                     ;      End loop once [6] is empty
      mOoMMMOOOMoOmoOMMMmOomOo                ;      Copy [5] to [6], and reset [5] to 1, then move back to [4]
   moo                                        ;   End loop now that [4] is empty.  [6] now contains the parity of [3]
   moOmoO                                     ;   Navigate to [6]
   MOO                                        ;   Loop while [6] is non-empty
      MOomOomOomOoMOomoOmoOmoO                ;      Decrememnt [3] and [6]
   moo                                        ;   End loop now that [6] is empty.  [3] now contains the largest even number less than the previous iteration.
   mOomOomOomOomOoMMMmoOMMM                   ;   Copy [1] to [2]
   MOO                                        ;   Loop while [2] is non-empty
      MOomoOOOMmOomOoMoOmoO                   ;      Decrement [2], increment [1], and print the number in [3].
   moo                                        ;   End loop now that [2] is empty
   mOomOoMoo                                  ;   Print a new line
   moOmoOmoO                                  ;   Navigate to [3]
   MOO                                        ;   Loop while [3] is non-empty
      MOoMOomoOMoOmOo                         ;      Decrement [3] twice and increment [4] once
   moo                                        ;   [4] now contains half of [3]
   moOMMMOOOmOoMMM                            ;   Copy [4] to [3] and clear [4]
   MMMmOoMMMMOo                               ;   Copy [3] to [2] and decrement once
moo                                           ;End loop now that [2] is empty

50 ইনপুট জন্য নমুনা আউটপুট:

50

24
24

12
12
12
12

6
6
6
6
6
6
6
6

2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2

2
আমার কোনও শব্দ নেই
জ্যাকসোনাক

আমার এখনও কোনও শব্দ নেই
জ্যাক্সকনাক

আমার কোনও শব্দ নেই
এডিকি ওকোহ

আমি ভালবাসি কিভাবে আড়াই বছর পরে, এটি এখনও মানুষকে আতঙ্কিত করে।
গ্যাব্রিয়েল বেনামি


6

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

n=input()
while n[0]>2:n=len(n)*2*[n[0]/4<<1];print n

বিশেষ বিভাগ পেতে 4 দ্বারা বিভক্ত এবং বাম শিফটটি 1 দ্বারা বিভক্ত করুন


4

হাস্কেল, 75 71 60 50 47 বাইট

f 0=[]
f n|x<-f$2*div n 4=show n:zipWith(++)x x

এটি অনলাইন চেষ্টা করুন! সম্পাদনা: আউটপুটটিকে এখন ইনপুট সহ একটি তালিকা হওয়ার অনুমতি দেওয়া হওয়ায় 10 13 বাইট সংরক্ষণ করা যায়।

ব্যবহার:

Prelude> f 50
["50","2424","12121212","66666666","2222222222222222"]

আসল 60 বাইট সংস্করণ:

2%x=""
n%x|z<-2*div n 4=([1..x]>>show z)++"\n"++z%(x*2)
(%2)

এটি অনলাইন চেষ্টা করুন! সংক্ষিপ্ত সূত্রটি নির্দেশ করার জন্য খ্রিস্টান সিভার্সকে ধন্যবাদ।

ব্যবহার:

Prelude> (%2)50
"2424\n12121212\n66666666\n2222222222222222\n"

আপনি ঠিক করতে পারেন z<-2*div n 4
ক্রিশ্চান সিভর্স

3

জাভাস্ক্রিপ্ট (ES6) 64 59 57 বাইট

f=s=>{for(n=1;s>2;)console.log(`${s=s/4<<1}`.repeat(n*=2))}

console.log(f.toString().length); 
f(5);
f(50);
f(30);                                  


যদি আমি আপনার কোডটি mothereff.in/byte-coutter এ রাখি তবে আমি 59 বাইট পাই?
তিশাল্লাকা

@ শ্যাচলালাকা আমি মনে করি f=তবে এটি কেবলমাত্র
ডেমোর

আহ ঠিক আছে. এটি স্পষ্ট করে তোলে :-) তারপরেও
মাইনে থেকে


3

জাভা, 85 বাইট

n->{String s="";for(int q=2,i;n>2;q*=2,s+="\n")for(i=q,n=n/4*2;i-->0;)s+=n;return s;}

পরীক্ষা এবং ungolfed

import java.util.function.*;

class Ideone {
  public static void main(String[] args) throws java.lang.Exception {
    Function<Integer, String> f = number -> {
      String result = "";
      for (int quantity = 2, i; number > 2; quantity *= 2) {
        number = number / 4 * 2; // Make sure that the next is half or half - 1 if odd
        for (i = quantity; i > 0; i--) { // copy "quantity" times.
          result += number;
        }
        result += "\n"; // append new line
      }
      return result;
    };
    System.out.println(f.apply(50));
  }
}

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


আদর্শ আপনার কোড সহ সূক্ষ্মভাবে কাজ করে। যখন তারা রক্ষণাবেক্ষণ করছেন তখন এটি অভ্যন্তরীণ ত্রুটি দেয় (আমার মনে হয়)। আমার পুরানো উত্তরগুলির দিকে ফিরে তাকানোর আগে আমি এটি পেয়েছিলাম। +1 বিটিডব্লিউ, আমি এমন কিছু দেখছি না যা আরও বেশি গল্ফ করা যায়। ওহ, এবং আমি আপনার n=n/4*2কৌশল পছন্দ। :)
কেভিন ক্রুইজসেন

3

সি #, 88 86 83 বাইট

স্কোরকে ধন্যবাদ 3 বাইট সংরক্ষণ করা হয়েছে

পরিবর্তন করে অন্য বাইট সংরক্ষিত whileএকটি থেকে forলুপ যা পরিবর্তনশীল ঘোষণা অন্তর্ভুক্ত

Yodle ধন্যবাদ 1 বাইট সংরক্ষণ করা

n=>{var r="";for(int i,c=2;n>2;c*=2,r+="\n")for(i=0,n=n/4*2;i++<c;)r+=n;return r;};

বেনামে ফাংশন যা প্রতিটি গ্রাইন্ডিংয়ের ফলাফলের সমন্বয়ে একটি স্ট্রিং দেয়।

অবহেলিত পদ্ধতি এবং পরীক্ষার কেসগুলির সাথে সম্পূর্ণ প্রোগ্রাম [শেষ সম্পাদনার আগে!]:

using System;

public class Program
{
    public static void Main()
    {
        Func<int, string> f =
        n =>
        {
            var r = "";
            for (int i, c = 1; n > 2; )  // iterator and counter variable
            {
                    n = n/4 * 2;    // make sure the result if even
                    c *= 2;         // keep track of the number of rocks
                    for (i = 0; i++ < c; )  // store the current line made of [c] rocks of size [n]
                        r += n;
                    r += "\n";      // add a trailing newline to the string resulted from this step
            }
            return r;       // return the entire history
        };

        //test cases:
        Console.WriteLine(f(5));
        Console.WriteLine(f(50));
        Console.WriteLine(f(30));
    }
}

2
ভাবেন যে আপনি লুপের জন্য 1 বাইট সংরক্ষণ করতে পারবেনfor(i=0;i++<c;)
ইয়ডল

আপনি যত yoddle করার জন্য আপনার দ্বিতীয় পরিবর্তন করে উল্লেখ করা হয়েছে, সংরক্ষণ 1 বাইট এখনও করতে পারেনfor (i = 0; i++ < c;)
এমএক্স ডি

পোস্টটি আপডেট করতে ভুলে গেছেন। এখনই আপডেট হয়েছে :)
অ্যাড্রিয়ান্প

1
আপনি 1 টি বাইট সংরক্ষণ করতে প্রতিটি পুনরাবৃত্তি 2 এবং * = 2 এ শুরু করতে নিজের কাউন্টার আপডেট করতে পারেন এবং নতুন লাইন সংযোজন স্থানান্তর করতে পারেন। এরপরে আপনি n = n / 4 * 2 কে দ্বিতীয় লুপে সরিয়ে নিতে পারেন এবং আরও 2 টি সংরক্ষণ করার জন্য বন্ধনীগুলি সরাতে পারেন। n=>{var r="";for(int i,c=2;n>2;c*=2,r+="\n")for(i=0,n=n/4*2;i++<c;)r+=n;return r;}
ঝড় 17

2

সিজোম , 21 বাইট

l~]{{2/-2&_}%_n_2-}g;

এটি অনলাইন চেষ্টা করুন! (পরীক্ষার স্যুট হিসাবে।)

ব্যাখ্যা

l~]      e# Read input, evaluate and wrap it in a singleton list.
{        e# Do while...
  {      e#   Map this block over the list of rocks.
    2/   e#   Halve the rock.
    -2&  e#   Bitwise AND with -2, clearing the least-significant bit and
         e#   rounding down to an even integer.
    _    e#   Duplicate.
  }%
  _n     e# Print a copy of the current list of rocks.
  _2-    e# Continue if the current list of rocks contains values that aren't 2.
}g
;        e# Discard the final result to prevent printing it again.

2

পাইথ, 18 16 13 বাইট

WhQ=Q*2my/d4\n

* \nএকটি নতুন লাইন
ব্যাখ্যা:

W              # While
 hQ            # first element of Q - 0 is falsy
   =Q          # assign to Q
     *2        # the double of the (list) that is returned
       m       # form this \/ map
         /d4   # divide every element by 4
        y      # and double
            \n # print Q

এখানে চেষ্টা করুন


2

এমএটিএল , 13 বাইট

`K/kEthttH>]x

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

`       % Do...while
  K/k   %   Divide by 4 and round down. Takes input implicitly in the first iteration
  E     %   Multiply by 2
  th    %   Attach a copy of itself (creates a longer array)
  t     %   Duplicate. This copy will be used for further grinding, keeping the original
  tH>   %   Duplicate. True if the values exceed 2. Used as loop condition
]       % End. The loop exits if the latest array contains 2
x       % Delete last copy. Implicitly display the entire stack

2

পিএইচপি, 72 67 64 বাইট

for($n=$argv[$k=1];$n>2;)echo str_repeat($n=$n/2&~1,$k*=2),"\n";

কমান্ড লাইন থেকে তর্ক করে। সাথে চালাও -r


2

জেলি , 13 12 11 বাইট

:4Ḥx2µȦпṖY

TryItOnline!

দ্রষ্টব্য: ওপি জানিয়েছে যে ইনপুটটি আউটপুটটিতেও থাকতে পারে।

কিভাবে?

:4Ḥx2µȦпṖY - Main link: rockSize
     µ      - monadic separation
       п   - loop collect intermediate results while
      Ȧ     - any
:4          -     integer division (vectorises) by 4
  Ḥ         -     double (vectorises)
   x2       -     repeat the elements 2 times
         Ṗ  - pop (remove the trailing list of zeros)
          Y - join with line feeds

ইনপুট ছাড়াই সংস্করণ 12 বাইটের জন্য প্রদর্শিত হবে: :4Ḥḟ0x2µÐĿḊG


2

পার্ল, 40 35 30 + 1 = 31 বাইট

-nপতাকা নিয়ে দৌড়াও

-4 বাইটস @ দাদাকে ধন্যবাদ

say$_ x($.*=2)while$_=$_>>1&~1

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

পার্ল স্বয়ংক্রিয়ভাবে পরিবর্তনশীল মধ্যে ইনপুট সার্চ $_যখন -nসেট করা হয়। দোভাষীর দ্বারা প্রোগ্রামের শুরুতে $.একটি বিশেষ পরিবর্তনশীল সেট 1, তাই আমি এটি দ্বিগুণ করার জন্য বেস হিসাবে ব্যবহার করতে পারি। লুপটির প্রতিটি পুনরাবৃত্তি while, এটি বিট-শিফট $_হয়ে যায় এবং একটি বিটকে বাতিল করার জন্য নিজের বিয়োগের নেতিবাচক বিপরীতে লজিক্যাল এবং সম্পাদন করে।


আপনি এটি 31 বাইটে গল্ফ করতে পারেন: perl -nE 'say$_ x($.*=2)while$_=$_>>1&~1'( এটি আরও আরও গল্ফ করা যেতে পারে, আমি এটিতে খুব বেশি সময় ব্যয় করি না)।
দাদা

2

পাওয়ারশেল 3+, 58 54 বাইট

for($s=$input;$s;$s=($s-shr2)*2){"$s"*(2-shl($i++)-1)}

আমাকে 4 বাইট বাঁচানোর জন্য টিমমিডি ধন্যবাদ !

কিছুটা অবহেলিত (ফর্ম্যাটিং)

for ( $s = $input ; $s ; $s = ( $s -shr 2 ) * 2 ) {
    "$s" * (2 -shl ($i++)-1)
}

ব্যাখ্যা

আমি অন্যান্য উত্তর হিসাবে অনেক হিসাবে 2 ট্রিক দ্বারা 4 গুণ দ্বারা একই বিভাজন ব্যবহার করছি, কিন্তু আমি একটি সমস্যা মধ্যে দৌড়ে। পাওয়ারশেল বিভাগের সময় প্রয়োজনে সংখ্যাগুলি ফ্লোটিং পয়েন্টে রূপান্তরিত করে, এবং গল্ফিংয়ের জন্য যা বিরক্তিকর হয় কারণ $v/4*2কিছুটা দুরন্ত অবস্থা হয়ে যায় [int]($v/4)*2। আমি বিভাজন সঙ্গে বিভাগের জন্য ব্যবহার করে যে কাছাকাছি পেয়েছিলাম-shr

কতবার পুনরাবৃত্তি মুদ্রণ করতে হবে তার গণনা করার জন্য আমি কেবল নিই (2^$i)-1যা ভালভাবে কাজ করে এবং ইনপুট মানটি রেখে যাওয়ার যুক্ত প্রভাব ফেলে। কেবল 2 দিয়ে গুণনের চেষ্টা করা সমস্যাযুক্ত কারণ 0 থেকে শুরু করা ঠিক দ্বারা মান বাড়ানো শক্ত করে তোলে$i*=2 এবং 1 থেকে শুরু করে সংখ্যাটি সঠিক পেতে খুব বেশি সংশোধন প্রয়োজন।

পাওয়ারশেলের যেহেতু এর জন্য কোনও অপারেটর নেই, এবং আমি এড়াতে চেয়েছিলাম [Math]::Pow(), তাই আমি আমার 2 এর ক্ষমতার জন্য আবার বিটশিটিংয়ের উপর নির্ভর করে।


@ টিমিডি হুপ্স সংস্করণ এবং ভাল টিপস উল্লেখ করতে ভুলে গেছেন; ধন্যবাদ!
ব্রিটিশবাদী

1

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

যেহেতু ওপি বলেছিল যে 1D অ্যারে যার মধ্যে ইনপুটটি ছিল তা ঠিক আছে আমি এই পুনরাবৃত্ত ফাংশন নিয়ে এসেছি, যা দুর্ভাগ্যক্রমে কেবলমাত্র পাইথন বিজয়ীর সাথেই সম্পর্কযুক্ত।

f=lambda s,n=1:[s]*n+(f(s/4*2,n*2)if s>3else[])

f=lambda r,n=1:[r]*n+(r>3and f(r/4*2,n*2)or[]) 46 এর জন্য
জোনাথন অ্যালান

1

পার্ল, 47 বাইট

$a=<>>>1;say 2*(($a>>=1)||die)x(1<<$_)for 1..$a

কোনও কমান্ড-লাইন বিকল্প নেই, এবার (পার্লের জন্য অস্বাভাবিকভাবে)। মূল ধারণাটি হ'ল যে কোনও ধাপে সমস্ত শিলা একই আকারের হিসাবে আমরা পুরো তালিকাটি রেকর্ড না করে কেবল আকার (ইন $a) এবং সংখ্যাটি (ইন $_) রেকর্ড করি। স্থান (বা +) পরে মুক্তি পাওয়ার কোনও উপায় আমি খুঁজে পেলাম না say; আপনি সরানো যেতে পারেন 2*তবে এটি উদ্বোধনী বন্ধনী অনুসরণ করা হয় তবে এটি সঠিকভাবে বিশ্লেষণ করবে না।

আমি সাহায্য করতে পারছি না কিন্তু অনুভূতিটি অনুভূতিটি কাঁপিয়ে দিতে পারি, তবে কীভাবে তা দেখতে পাচ্ছি না।


আমি যদি এটিকে আরও গল্ফ দেওয়ার চেষ্টা করি তবে প্রতিবার গ্যাব্রিয়েল বেনামির উত্তর দিয়ে শেষ করব। কেবল কয়েকটি পদক্ষেপ প্রদর্শন করতে: dieপরিষ্কারভাবে উপ-অনুকূল মনে হয়। কিন্তু আমরা এখনও যদি আমরা বন্ধ বা না প্রয়োজন চেক করতে একটি উপায় প্রয়োজন -> একটি সমাধান পরিবর্তে কিছুদিনের ব্যবহার করা for: while$a>1। কিন্তু আমরা জন্য একটি প্রতিস্থাপন বের করতে হবে $_: কোন unitialized পরিবর্তনশীল এটা করতে পারেন: প্রতিস্থাপন 1<<$_দ্বারা 1<<++$x। তাই এখন $_ব্যবহার করা হয় বিনামূল্যে আমরা কি তবে ব্যবহার করতে পারেন, -nএবং প্রতি প্রতিস্থাপন $aএকটি সঙ্গে $_, এবং প্রথম নির্দেশ হয়ে $_>>=1। যেহেতু আমাদের রয়েছে -n, $.সেট করা আছে, তাই আমরা এটির 1<<++$lসাথে প্রতিস্থাপন করতে পারি $.*=2
দাদা

এই সমস্ত পরিবর্তনগুলি সম্পাদনা করলে perl -nE '$_>>=1;say 2*($_>>=1)x($.*=2)while$_>1'(39 বাইট) উত্পাদিত হবে । তারপরে লক্ষ্য করুন যে $_>>=1এটি দুটি করা হয়েছে, তাই আমরা একটি (প্রথমটি) থেকে মুক্তি পাওয়ার চেষ্টা করতে পারি। এ থেকে মুক্তি পাওয়ার চেষ্টা করে আমি পেয়েছি say$_ x($.*=2)while($_>>=1)/2>1(উভয়কে whileশর্তের মধ্যে রেখেছি )। তবে ফলাফলটি ভুল ( $_বিজোড় হতে পারে), এবং এটি এমনকি এটি নিশ্চিত করার চেষ্টা করে, আমি শেষ করছি while$_=$_>>1&~1। কোড এখন হয় say$_ x($.*=2)while($_=$_>>1&~1)
দাদা

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

আমি সম্মত, এটি অন্যান্য পার্ল সমাধান থেকে যথেষ্ট পৃথক, এবং আমার পূর্ববর্তী মন্তব্যে, আমি এটি দেখানোর চেষ্টা করেছি যে আমি যে গল্ফ করতে পারি তার একমাত্র উপায় এটি অন্য সমাধানে পরিণত করবে। সুতরাং এটি ঠিক সমাধান হিসাবে মনে হচ্ছে হিসাবে এটি ছেড়ে।
দাদা

1

ভিম 61 54 বাইট

qqYpPJ0yw:s;\d*;="/2
;g
:let @t=(">7)+1
@tkjjG@qq@q

TryItOnline!

Unprintables:

qqYpPJ0yw:s;\d*;^R=^R"/2
;g
:let @t=(^R">7)+1
@tkjjG@qq@q

ভাগ্যক্রমে vim x / 2 এ স্বয়ংক্রিয়ভাবে কেটে যায়।


1

জাভাস্ক্রিপ্ট, 71 63 59 58 বাইট

ঠিক আছে, আমি এই জাভাস্ক্রিপ্ট সমাধান নিয়ে এসেছি। গল্ফিংয়ে সম্পূর্ণ নতুন, তবে আমি এটি একটি মজাদার চ্যালেঞ্জের মুখোমুখি

লুপের জন্য একটি ব্যবহার করে টাইটাসের পরামর্শের জন্য 4 বাইট সংরক্ষণ করা হয়েছে।

অবারিত ভিত্তি:

for(o = i = 30; i > 1; i= i/4<<1) {
   console.log(`${i}`.repeat(o / i));
}

গল্ফ সংস্করণ

for(o=i=30;i>1;i=i/4<<1){console.log(`${i}`.repeat(o/i));}

আমি কীভাবে এটি উন্নতি করতে / গল্ফিং শিখতে পারি তার পরামর্শের জন্য উন্মুক্ত

ইনপুট পরীক্ষক


1
আপনি একটি দুটি বাইট সংরক্ষণ করতে পারবেন forলুপ: for(o=i=30;i>2;console.log(...)){...}। এবং দুটি নাকাল Assigments এক সাথে একত্রিত করে, আপনি ধনুর্বন্ধনী মুছে ফেলতে পারেন: i=i/4<<1;(-5)। i=i/4*2;একই কাজ করবে কিনা তা নিশ্চিত নয় ।
তিতাস

1
আমি বাজি ধরছি তুমি পরীক্ষা করেছ না।
তিতাস

এখনও নয়, আমার বাচ্চাদের ধরতে পিসি থেকে
ছুটে যেতে হয়েছিল


1

সুইফ্ট, 84 বাইট

func g(n:Int){var n=n,i=2;while n>2{n=n/4*2;print(Array(repeating:n,count:i));i*=2}}

Ungolfed

func grind(rockSize: Int) {
    var rockSize = rockSize
    var rockCount = 1

    while rockSize > 2 {
        rockSize = rockSize / 4 * 2
        rockCount *= 2

        let output = Array(repeating: rockSize, count: rockCount)
        print(output)
    }
}

1

বেফুঞ্জ, 45 বাইট

&1vg0_\:.\v
:\<  ^!:-1<p00:*2\.:*2/4,+55_@#`2

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

ব্যাখ্যা

&           read the rock size
1           initialise the count
<           start of main loop going right to left

  \         swap the size to the top of the stack
  :2`#@_    if size is not > 2 then exit
  55+,      output a line break
  4/2*      size = size/4*2, i.e. split into even halves
  :.        output the size
  \         swap the count to the top of the stack
  2*        count = count*2
  :00p      save count for later

  <         start of inner loop
    1-      decrement the count
    :!^_    break out of the loop if the count is zero
    \       swap the size to the top of the stack
    :.      output the size
    \       swap the count to the top of the stack
    v       back to the start of the inner loop    

  0g        restore the saved count
  v         back to the start of the main loop

1

জাভাস্ক্রিপ্ট, 106 বাইট

প্রথম কোড গল্ফ, ভেবেছিলাম আমার যেতে হবে। (এটি খুব ভাল নয়)।

for(;i[i.length-1]>3;){for(var x=0;x<i.length;x++)i[x]/=2,i[x]%2===1&&i[x]--;i=i.concat(i),console.log(i)}

Unminified:

while (input[input.length - 1] > 3) {
    for (var x = 0; x < input.length; x++) {
        input[x] /= 2;
        if (input[x] % 2 === 1) input[x]--;
    }
    input = input.concat(input);
    console.log(input);
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.