ফিবোনাচি সর্পিল


37

আপনার লক্ষ্য হ'ল সংখ্যাসহ একটি ফিবোনাচি সর্পিল উত্পন্ন করা ।

নমুনা

উদাহরণ ইনপুট / আউটপুট

1 -> 1

2 -> 1 1

3 -> 1 1
     2 2
     2 2

6 -> 8 8 8 8 8 8 8 8 5 5 5 5 5
     8 8 8 8 8 8 8 8 5 5 5 5 5
     8 8 8 8 8 8 8 8 5 5 5 5 5
     8 8 8 8 8 8 8 8 5 5 5 5 5
     8 8 8 8 8 8 8 8 5 5 5 5 5
     8 8 8 8 8 8 8 8 1 1 3 3 3
     8 8 8 8 8 8 8 8 2 2 3 3 3
     8 8 8 8 8 8 8 8 2 2 3 3 3

9 এর ইনপুট

ইনপুট এসটিডিএন বা ফাংশন আর্গুমেন্টের মাধ্যমে ইনপুট নেওয়া যেতে পারে। এটি একটি একক সংখ্যা হবে

আউটপুট আউটপুটটি STDOUT বা কোনও ফাংশনের রিটার্ন মান হতে পারে। এটি একক স্ট্রিং হওয়া উচিত।

লাইনের একেবারে শেষে অতিরিক্ত সাদা অংশের অনুমতি নেই। আউটপুটে অঙ্ক, লাইনফিড (নতুনলাইন) এবং স্পেস থাকতে পারে।

ওরিয়েন্টেশন কোনও বিষয় নয়, এর অর্থ ঘোরাঘুরি এবং প্রতিচ্ছবি। যতক্ষণ না এটি বৈধ ফিবোনাচি সর্পিল প্যাটার্ন অনুসরণ করে।

বিভিন্ন পরিমাণের সংখ্যার (যেমন 1 এবং 13) নম্বরগুলি একে অপরের সাথে ডান-প্রান্তিক হওয়া উচিত। একটি লাইনের একেবারে শুরুতে একটি স্থান যুক্ত করা দরকার যাতে সমস্ত কিছু সীমাবদ্ধ থাকে।

1   1                          1   1
100 100  should actually be  100 100

আপনি এখানে একটি উদাহরণ দেখতে পারেন


এটি তাই বাইট জেতে সংক্ষিপ্ততম কোড!


4
সম্পর্কিত চ্যালেঞ্জ (এবং একটি খুব দুর্দান্ত ঘড়ি)
Sp3000

Numbers with different amounts of digits (e.g. 1 and 13) should be aligned to the left side of the digit a space may need to be added to the very beginning of a line so everything can line up.এটি দুটি বাক্য হিসাবে পরিষ্কার হতে পারে বলে মনে হচ্ছে।
ট্রাইকোপল্যাক্স

এটি উদাহরণ থেকে দেখায় যে আপনি প্রতিটি সংখ্যার ডানতম অঙ্কটি প্রান্তিককরণ করতে চান, তবে "অঙ্কের বাম দিকে সারিবদ্ধ" বিপরীত মত শোনাচ্ছে।
ট্রাইকোপলাক্স

আপনি কি "চারপাশের সাদা স্থানের অনুমতি নেই" তা পরিষ্কার করতে পারেন? বিশেষত - শীর্ষস্থানীয় বা লাইনগুলিতে সাদা স্থান অনুসরণযোগ্য?
এমটনভিউমার্ক

মাতলাব ডিফল্টরূপে স্টপআউট আউটপুট প্রিন্ট করে। সংখ্যার ধরণের আউটপুট (স্ট্রিং-টাইপ আউটপুট বিপরীতে) যা স্বয়ংক্রিয়ভাবে স্টডআউটতে মুদ্রিত হয় তা গ্রহণযোগ্য?
লুইস মেন্ডো

উত্তর:


15

এপিএল, 23

{a,⍴⍨2⍴⊃⍴a←⌽⍉⍵}⍣(⎕-1)⍪1

ব্যাখ্যা:

⍪1               this creates a 1x1 matrix containing just 1
{..}⍣(⎕-1)     the power operator (⍣) repeats the function {} user input - 1 times
a,⍴⍨2⍴⊃⍴a←⌽⍉⍵   the function being iterated rotates the matrix and appends the next matrix to it.

এটি ব্যবহার করে দেখুন tryapl.org


1
আপনি যদি এখানে অনুসন্ধান করেন তবে অনেকের আগেই আপনার সন্দেহ ছিল। এখানে @ টোবিয়ার জবাব যেমন: * ডায়ালগ এপিএল একটি লিগ্যাসি চরসেট সমর্থন করে যা এপিএল প্রতীকগুলি উপরের 128 বাইট মানগুলিতে ম্যাপ করেছে। সুতরাং একটি এপিএল প্রোগ্রাম যা কেবলমাত্র এসকিআইআই অক্ষর এবং এপিএল প্রতীক ব্যবহার করে তা বাইটস == অক্ষর হিসাবে বিবেচিত হতে পারে।
মরিস জুকা

ঠিক আছে তাহলে, আমি আমার মন্তব্য প্রত্যাহার করব।
Gar

1
@ মরিসজুকা যদিও লক্ষ্য করুন যে কয়েকটি অক্ষর (যেমন বা ) সেই অক্ষর সেট থেকে অনুপস্থিত এবং আপনি যখন এই নিয়মটি উড়িয়ে দিতে চান তখন ব্যবহার করা যাবে না।
FUZxxl

1
সত্য, "কী" এবং "র‌্যাঙ্ক" আরও নতুন বাস্তবায়ন এবং বাস্তবে আমি ব্যবহার করি ডায়ালগ ইন্টারপ্রেটারের ইউনিকোড সংস্করণে। ক্লাসিক সংস্করণে কম্যান্ডের সমতুল্য ব্যবহার করতে হবে। উদাহরণস্বরূপ same (⎕OPT) এর ক্ষেত্রেও এটি একই প্রযোজ্য। সুতরাং আমি সাধারণত মনে করি যে আমি যদি এটি ডায়ালগ ক্লাসিক সংস্করণে লিখতে পারি তবে এটি প্রতি চার্চে 1 বাইট বলা নিরাপদ। আমি ভুল হলে শুধরে. এবং মন্তব্যের জন্য ধন্যবাদ।
মরিস জুকা

8

মতলব, 84 বাইট

একটি ফাংশন ব্যবহৃত হয়। আউটপুট stdout হয়।

function f(N)
s=0;t=1;y=1;for n=2:N
u=s+t;s=t;t=u;y=[rot90(y) t*ones(t)];end;disp(y)

উদাহরণ:

>> f(1)
     1
>> f(2)
     1     1
>> f(3)
     1     2     2
     1     2     2
>> f(6)
     5     5     5     5     5     8     8     8     8     8     8     8     8
     5     5     5     5     5     8     8     8     8     8     8     8     8
     5     5     5     5     5     8     8     8     8     8     8     8     8
     5     5     5     5     5     8     8     8     8     8     8     8     8
     5     5     5     5     5     8     8     8     8     8     8     8     8
     3     3     3     1     1     8     8     8     8     8     8     8     8
     3     3     3     2     2     8     8     8     8     8     8     8     8
     3     3     3     2     2     8     8     8     8     8     8     8     8
>> f(7)
     8     8     8     8     8     8     8     8    13    13    13    13    13    13    13    13    13    13    13    13    13
     8     8     8     8     8     8     8     8    13    13    13    13    13    13    13    13    13    13    13    13    13
     8     8     8     8     8     8     8     8    13    13    13    13    13    13    13    13    13    13    13    13    13
     8     8     8     8     8     8     8     8    13    13    13    13    13    13    13    13    13    13    13    13    13
     8     8     8     8     8     8     8     8    13    13    13    13    13    13    13    13    13    13    13    13    13
     8     8     8     8     8     8     8     8    13    13    13    13    13    13    13    13    13    13    13    13    13
     8     8     8     8     8     8     8     8    13    13    13    13    13    13    13    13    13    13    13    13    13
     8     8     8     8     8     8     8     8    13    13    13    13    13    13    13    13    13    13    13    13    13
     5     5     5     5     5     1     2     2    13    13    13    13    13    13    13    13    13    13    13    13    13
     5     5     5     5     5     1     2     2    13    13    13    13    13    13    13    13    13    13    13    13    13
     5     5     5     5     5     3     3     3    13    13    13    13    13    13    13    13    13    13    13    13    13
     5     5     5     5     5     3     3     3    13    13    13    13    13    13    13    13    13    13    13    13    13
     5     5     5     5     5     3     3     3    13    13    13    13    13    13    13    13    13    13    13    13    13

মতলব, 78 বাইট

function y=f(N)
s=0;t=1;y=1;for n=2:N
u=s+t;s=t;t=u;y=[rot90(y) t*ones(t)];end

উপরের মত একই মত্লাবের বৈশিষ্ট্যটি শোষণ করা হয়, এটি স্টডআউটে স্বয়ংক্রিয়ভাবে ফাংশন আউটপুট (স্ট্রিং হিসাবে) প্রদর্শন করে। এটি উপরোক্ত পদ্ধতির স্ট্রিংয়ে রূপান্তর এড়িয়ে চলে।

f(6)
ans =
     5     5     5     5     5     8     8     8     8     8     8     8     8
     5     5     5     5     5     8     8     8     8     8     8     8     8
     5     5     5     5     5     8     8     8     8     8     8     8     8
     5     5     5     5     5     8     8     8     8     8     8     8     8
     5     5     5     5     5     8     8     8     8     8     8     8     8
     3     3     3     1     1     8     8     8     8     8     8     8     8
     3     3     3     2     2     8     8     8     8     8     8     8     8
     3     3     3     2     2     8     8     8     8     8     8     8     8

কিছু মতলব সমাধান দেখে খুশি :-)
হকি

@ হকি ধন্যবাদ! :-)
লুইস মেন্ডো

7

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

a,b=0,1;L=[]
exec"a,b=b,a+b;L=zip(*L[::-1])+[[a]*a]*a;"*input()
for r in L:print" ".join("%*d"%(len(str(a)),x)for x in r)

আবর্তনের উপর স্বচ্ছন্দ বিধিগুলি এটিকে অনেক সহজ করে তোলে।

আমি str(a)এখানে জায়গায় ব্যাকটিক্স ব্যবহার করি নি কারণ প্রয়োজনের তুলনায় আমাদের আরও শীর্ষস্থানীয় স্থানের অনুমতি দেওয়া হয়েছে কিনা তা আমি নিশ্চিত নই, যদি আমরা কখনই দীর্ঘায়িত হয়। যদিও, আমরা থাকলেও, aনিজেকে ব্যবহার করা যাই হোক না কেন ছোট হবে।


7

রুবি, 243 242 236 233 222 170 130 বাইট

s,l,r=0,1,[]
gets.to_i.times{s+=l
l=s-l
s.times{r<<[s]*s}
r=r.transpose.reverse}
r.map{|w|puts w.map{|c|"%#{s.to_s.size}s"%c}*" "}

1
দুর্দান্ত গল্ফিং! আপনি t==valueশর্তগুলিতে রূপান্তর করে ৪ নং লাইনে কিছু অক্ষর সংরক্ষণ করতে পারেন t>value। উদাহরণস্বরূপ,(t=x%4)>2?s.times{r<<[s]*s}:t>1?s.times{r.map!{|w|w.unshift s}}:t>0?s.times{r.unshift [s]*s}:r.map!{|w|w+=[s]*s}}
ক্রিশ্চিয়ান লুপাস্কু

6

পাইথন - 189 179 174

n=int(input())
f=[1,1]
while len(f)<n:f+=[f[-1]+f[-2]]
o=[[]]
for i in f:o=(list(zip(*o)))[::-1]+[[i]*i]*i
for x in o:print(' '.join(str(y).rjust(len(str(f[-1])))for y in x))

6

জে, 36 বাইট

1&(($~,~)@(1{$@]),.|:@|.@])&(,.1)@<:

ব্যবহার:

   (1&(($~,~)@(1{$@]),.|:@|.@])&(,.1)@<:) 6
8 8 8 8 8 8 8 8 5 5 5 5 5
8 8 8 8 8 8 8 8 5 5 5 5 5
8 8 8 8 8 8 8 8 5 5 5 5 5
8 8 8 8 8 8 8 8 5 5 5 5 5
8 8 8 8 8 8 8 8 5 5 5 5 5
8 8 8 8 8 8 8 8 1 1 3 3 3
8 8 8 8 8 8 8 8 2 2 3 3 3
8 8 8 8 8 8 8 8 2 2 3 3 3

পদ্ধতি:

ফাংশনটি বর্তমান বর্গক্ষেত্রটি ঘোরায় এবং বর্তমানের সাথে একটি নতুন স্কোয়ার যুক্ত করে input-1। পূর্ববর্তী আয়তক্ষেত্রের আকার থেকে স্কোয়ারের আকার এবং উপাদান মানগুলি সংগ্রহ করা হয়।

কোড ব্যাখ্যা:

1&(           loop
    ($~,~)      new square with size and elements
    @(1{$@])    with the size of the second dimension of the current rectangle
    ,.          attached to
    |:@|.@]     rotated current rectangle
)&(,.1)       starting the loop with matrix 1
@<:           looping input-1 times

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


6

হাস্কেল, 183 176 171 163 বাইট

import Data.List
s t=map((t>>[l t])++)t
e 1=[[1]];e n=s.reverse.transpose$e$n-1
f=g.e
g m=unlines$map(>>=((show$l m)#).show)m
a#b|l a<l b=b;a#b=a#(' ':b)
l=length

ফাংশনটি হল f, যা একটি সংখ্যা নেয় এবং একটি একক স্ট্রিং প্রদান করে:

λ: putStr $ f 8
 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21  5  5  5  5  5  8  8  8  8  8  8  8  8
 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21  5  5  5  5  5  8  8  8  8  8  8  8  8
 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21  5  5  5  5  5  8  8  8  8  8  8  8  8
 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21  5  5  5  5  5  8  8  8  8  8  8  8  8
 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21  5  5  5  5  5  8  8  8  8  8  8  8  8
 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21  3  3  3  1  1  8  8  8  8  8  8  8  8
 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21  3  3  3  2  2  8  8  8  8  8  8  8  8
 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21  3  3  3  2  2  8  8  8  8  8  8  8  8
 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 13 13 13 13 13 13 13 13 13 13 13 13 13
 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 13 13 13 13 13 13 13 13 13 13 13 13 13
 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 13 13 13 13 13 13 13 13 13 13 13 13 13
 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 13 13 13 13 13 13 13 13 13 13 13 13 13
 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 13 13 13 13 13 13 13 13 13 13 13 13 13
 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 13 13 13 13 13 13 13 13 13 13 13 13 13
 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 13 13 13 13 13 13 13 13 13 13 13 13 13
 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 13 13 13 13 13 13 13 13 13 13 13 13 13
 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 13 13 13 13 13 13 13 13 13 13 13 13 13
 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 13 13 13 13 13 13 13 13 13 13 13 13 13
 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 13 13 13 13 13 13 13 13 13 13 13 13 13
 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 13 13 13 13 13 13 13 13 13 13 13 13 13
 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 13 13 13 13 13 13 13 13 13 13 13 13 13

5

পাইথ, 34 বাইট

jbmsm.[hl`lhZ`k\ d=Zu+_CGmmlGGGQ]]

আশ্চর্যের বিষয় হল, কোডের অর্ধেকেরও বেশি ম্যাট্রিক্স তৈরির পরিবর্তে মুদ্রণ / প্যাডিং করছে।

ম্যাট্রিক্সের জেনারেশনটি সত্যিই সহজ তবে এটি ট্রান্সপোজ এবং বিপরীত দ্বারা গঠিত এবং এন এর অনুলিপিযুক্ত এন লাইন যুক্ত করে যেখানে এন বর্তমান লাইনের সংখ্যা।

7 এর জন্য আউটপুট উদাহরণ:

  5  5  5  5  5  8  8  8  8  8  8  8  8
  5  5  5  5  5  8  8  8  8  8  8  8  8
  5  5  5  5  5  8  8  8  8  8  8  8  8
  5  5  5  5  5  8  8  8  8  8  8  8  8
  5  5  5  5  5  8  8  8  8  8  8  8  8
  3  3  3  1  1  8  8  8  8  8  8  8  8
  3  3  3  2  2  8  8  8  8  8  8  8  8
  3  3  3  2  2  8  8  8  8  8  8  8  8
 13 13 13 13 13 13 13 13 13 13 13 13 13
 13 13 13 13 13 13 13 13 13 13 13 13 13
 13 13 13 13 13 13 13 13 13 13 13 13 13
 13 13 13 13 13 13 13 13 13 13 13 13 13
 13 13 13 13 13 13 13 13 13 13 13 13 13
 13 13 13 13 13 13 13 13 13 13 13 13 13
 13 13 13 13 13 13 13 13 13 13 13 13 13
 13 13 13 13 13 13 13 13 13 13 13 13 13
 13 13 13 13 13 13 13 13 13 13 13 13 13
 13 13 13 13 13 13 13 13 13 13 13 13 13
 13 13 13 13 13 13 13 13 13 13 13 13 13
 13 13 13 13 13 13 13 13 13 13 13 13 13
 13 13 13 13 13 13 13 13 13 13 13 13 13

4

পার্ল, 289 277 257 বাইট

@f=(0,1);push@f,$f[-1]+$f[-2]while(@f<=$ARGV[0]);$d=1+length$f[-1];shift@f;map{$v=$f[$_];$t=sprintf("%${d}d",$v)x$v;$_%4||map{unshift@s,$t}1..$v;$_%4==3&&map{$_.=$t}@s;$_%4==2&&map{push@s,$t}1..$v;$_%4==1&&map{$_=$t.$_}@s;}0..$#f;$\=$/;for(@s){s/^ //;print}

4

কে, 48 বাইট

{{`0:1_',/'(1+#$|//x)$x}(x-1){+|x,\:t#t:#x}/,,1}

এবং কর্মে:

  {{`0:1_',/'(1+#$|//x)$x}(x-1){+|x,\:t#t:#x}/,,1}7
 8  8  8  8  8  8  8  8  5  5  5  5  5
 8  8  8  8  8  8  8  8  5  5  5  5  5
 8  8  8  8  8  8  8  8  5  5  5  5  5
 8  8  8  8  8  8  8  8  5  5  5  5  5
 8  8  8  8  8  8  8  8  5  5  5  5  5
 8  8  8  8  8  8  8  8  1  1  3  3  3
 8  8  8  8  8  8  8  8  2  2  3  3  3
 8  8  8  8  8  8  8  8  2  2  3  3  3
13 13 13 13 13 13 13 13 13 13 13 13 13
13 13 13 13 13 13 13 13 13 13 13 13 13
13 13 13 13 13 13 13 13 13 13 13 13 13
13 13 13 13 13 13 13 13 13 13 13 13 13
13 13 13 13 13 13 13 13 13 13 13 13 13
13 13 13 13 13 13 13 13 13 13 13 13 13
13 13 13 13 13 13 13 13 13 13 13 13 13
13 13 13 13 13 13 13 13 13 13 13 13 13
13 13 13 13 13 13 13 13 13 13 13 13 13
13 13 13 13 13 13 13 13 13 13 13 13 13
13 13 13 13 13 13 13 13 13 13 13 13 13
13 13 13 13 13 13 13 13 13 13 13 13 13
13 13 13 13 13 13 13 13 13 13 13 13 13

গল্ফ করার জন্য এখনও কিছু ভাল সুযোগ থাকতে পারে।

প্রোগ্রামটি মূলত দুটি অংশ নিয়ে গঠিত - কনটেনেটেড ম্যাট্রিক্স উত্পন্ন করে আউটপুট জন্য এটি বিন্যাস করে। প্রাক্তনটি মোটামুটি সহজ:

  {(x-1){+|x,\:t#t:#x}/,,1}5
(3 3 3 2 2
 3 3 3 2 2
 3 3 3 1 1
 5 5 5 5 5
 5 5 5 5 5
 5 5 5 5 5
 5 5 5 5 5
 5 5 5 5 5)

1 সহ 1x1 ম্যাট্রিক্স দিয়ে শুরু করে, টি এর একটি টি-দৈর্ঘ্যের ভেক্টর তৈরি করুন যেখানে টি প্রথম মাত্রার ( t#t:#x) এর ম্যাট্রিক্সের দৈর্ঘ্য ( ) এবং এটি মূল ম্যাট্রিক্সের প্রতিটি সারিতে সংযুক্ত করুন ( x,\:)। ফলাফলটি বিপরীত ও স্থানান্তরিত করে +|এটি 90 ডিগ্রি ঘোরান। আমরা এই এন -1 বার করি।

ফর্ম্যাটিংটি বেশ জঘন্য, কারণ ম্যাট্রিক্স মুদ্রণের ক্ষেত্রে কে-এর প্রাকৃতিক পদ্ধতির সংখ্যা কলামগুলি আমাদের প্রয়োজনীয়ভাবে প্রান্তিককরণ করবে না:

{`0:1_',/'(1+#$|//x)$x}

ম্যাট্রিক্স ( |//x) এর সর্বাধিক উপাদান নেওয়া , এটিকে একটি স্ট্রিং (অ্যানারি $) এ রূপান্তর করা , তার দৈর্ঘ্য প্লাস ওয়ান ( 1+#) গ্রহণ করা এবং তারপরে ম্যাট্রিক্সের উপাদানগুলিকে সেই আকারের ডান প্রান্তিকৃত স্ট্রিংগুলিতে ফর্ম্যাট করা basic তারপরে পরিপাটি করার জন্য, সেই স্ট্রিংগুলিতে যোগদান করুন ( ,/') এবং ফলাফলের নেতৃত্বাধীন স্থানটি ড্রপ করুন 1_'


4

সিজেম, 48 বাইট

1saali({z{W%}%_0=,__sa*a*+}*_W=W=,):U;{USe[}f%N*

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

প্যাটার্নটি উত্পন্ন করার মূল অংশটি যথাযথভাবে সোজা মনে হয়। এখনও অবধি তৈরি করা আয়তক্ষেত্রটি ঘোরান এবং নীচে একটি বর্গাকার মান যুক্ত করুন।

ফলাফলটি প্যাডিংয়ের কোডটি অত্যন্ত ভয়ঙ্কর দেখাচ্ছে। নেস্টেড তালিকায় প্যাডিং প্রয়োগ করার জন্য আমি fএবং :অপারেটরগুলির সমন্বয়গুলির একটি গুচ্ছ চেষ্টা করেছি , কিন্তু কিছুই কার্যকর হয়নি। কারও কাছে যদি আরও ভাল পরামর্শ থাকে তবে তারা সবচেয়ে স্বাগত।

1s    First value. Using string for values so that we can pad them in the end.
aa    Wrap it twice. Data on stack will be a list of lists (list of lines).
li    Get input.
(     Decrement, since we seeded the list at n=1.
{     Loop over n.
  z     Transpose...
  {W%}% ... and reverse all lines, resulting in a 90 degree rotation.
  _0=,  Get length of line, which is the size of square we need to add.
  __    Create two copies of size.
  sa    Convert one size to string, and wrap it in array.
  *     Replicate it size times. This is one line.
  a     Wrap the line...
  *     ... and replicate it size times. The square of new values is done.
  +     Add the list of lines to the previous list of lines.
}*    End of loop over n.
_W=W= Get last value produced.
,)    Take its length, and increment it. This is the output field width.
:U;   Store the field width in variable, and pop it. This is ugly.
{     Start of block applied to all values.
  U     Field width stored in variable.
  S     Space.
  e[    Pad left.
}f%   End of block applied to all values.
N*    Join lines with newline.

সমস্ত লাইন বিপরীত সঙ্গে করা যেতে পারে Wf%। এছাড়াও, আপনি প্যাডিংয়ের {Se[}ff%চেয়ে ভালো কিছু করতে সক্ষম হবেন :U;{USe[}f%? (এটি এখনকার মতো কাজ করতে পারে না, আমি এখনই এটির মাধ্যমে চিন্তা করতে পারি না))
Esolanging ফল

2

পাইথ, 29 বাইট

Vu+C_GmmlGGGQ\]Yjdm.\[l`lN`d\ N

প্রদর্শন.

যদি এপিএলের মতো প্যাডিং বিনামূল্যে / অন্তর্ভুক্ত থাকে বা ম্যাট্রিক্স আউটপুট অনুমোদিত ছিল তবে এটি 14 বাইট হবে:

u+C_GmmlGGGQ]Y

2

রুবি, 129 বাইট

আমি অন্য রুবির জবাবটি একগুচ্ছ সম্পাদনা করেছি, তবে আমার অতি সাম্প্রতিক পরিবর্তনটি গ্রহণ করা হচ্ছে না বা কোনও কিছু হচ্ছে না, তাই এটি এখানে:

s,r=0,[[1]]
gets.to_i.times{s+=r[0][0]
r=(r+[[s]*s]*s).transpose.reverse}
r.map{|w|puts w.map{|c|"%#{r[0][s].to_s.size}s"%c}*' '}

1
পিপিসিজিতে আপনাকে স্বাগতম! গল্ফিংয়ের উন্নতিগুলি প্রায়শই এখানে প্রায় প্রত্যাখ্যান করা হয় (যদি আপনার অন্যান্য পরামর্শগুলি গ্রহণ করা হয় তবে অবশ্যই এটি একটি তদারকি করা উচিত), কারণ তারা পর্যালোচনা করার জন্য লেখকের মন্তব্যে পোস্ট করার কথা রয়েছে। এই নীতির পিছনে যুক্তির জন্য এই মেটা পোস্টটি দেখুন।
মার্টিন ইন্ডার

তথ্যের জন্য ধন্যবাদ, উপলব্ধি করে। মন্তব্য করা হ'ল আমি মূলত যা করতাম তবে মন্তব্য করার মতো যথেষ্ট খ্যাতি পয়েন্ট আমার কাছে নেই, তবে ভবিষ্যতে করব। শুভ গল্ফিং!
ব্যবহারকারী2251284

1

ES6, 248 বাইট

n=>(f=(n,o=n)=>Array(n).fill(o),g=n=>n<3?[f(n,1)]:(a=g(n-2)).reverse().concat(f(l=a[0].length,f(l))).map((e,i,a)=>f(a.length).concat(e.reverse())),a=g(n),s=' '.repeat(l=` ${a[0][0]}`.length),a.map(a=>a.map((e,i)=>(s+e).slice(!i-1)).join``).join`\n`)

যেখানে \nএকটি আক্ষরিক নিউলাইন চরিত্র উপস্থাপন করে।

বিরক্তিকরভাবে ফর্ম্যাটিংটি কোডের একটি বড় অংশ গ্রহণ করে।

fএকটি সহায়ক ফাংশন যা একটি ভরাট অ্যারে করে। এটি বেশিরভাগ ভরাট স্কয়ারগুলি তৈরি করতে ব্যবহৃত হয় তবে পুনরাবৃত্তির জন্য বেস কেসগুলি উত্পাদন করতে হাতের দ্বিগুণ হয়।

gপ্রধান গ্রান্টওয়ার্ক। এটি পুনরাবৃত্তভাবে শেষ কিন্তু একটি সমাধান উত্পন্ন করে, এটি 180 ডিগ্রি ঘোরায়, তারপরে পরবর্তী দুটি স্কোয়ার সংযোজন করবে।

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