সংখ্যা ত্রিভুজ মুদ্রণ করুন


25

একটি নম্বর দেওয়া হয়েছে N, একটি এনএক্সএন ডান কোণযুক্ত ত্রিভুজ আউটপুট করুন, যেখানে প্রতিটি সারি iপর্যন্ত সংখ্যা দিয়ে পূর্ণ হয় i

উদাহরণ

n = 0

(আউটপুট নেই)

n = 4

1
1 2
1 2 3
1 2 3 4

n = 10

1
1 2
1 2 3
.
.
.
1 2 3 4 5 6 7 8 9 10

(কোনও প্রান্তিককরণের প্রয়োজন নেই)

n = এন

1
1 2
1 2 3
.
.
.
1 2 3 4 .... N

প্রতিটি লাইনের শেষে কোনও পিছনে স্থান নেই।

স্বল্প সংখ্যক বাইট জয়, এবং মানক লুফোলগুলি অনুমোদিত নয়।


আউটপুট সংখ্যার নেস্টেড তালিকা হতে পারে?
315

এন = 0 এবং এন> 9 এর জন্য কী আচরণ করা উচিত?
freekvd

@ সিগ শিওর, যতক্ষণ না আউটপুট সঠিক হয়।
ট্যান ডাব্লুএস

@ ফ্রিকভিডে 0 এর জন্য কোনও আউটপুট নেই, এন> 9 এর জন্য কোনও বিশেষ বিন্যাসের প্রয়োজন নেই
টান ডাব্লুএস

আহ ছোলা, তুমি আমার জমাটি ভেঙে দিয়েছ। ASAP ঠিক করা
13:55

উত্তর:


17

জো , 5 3 বাইট ( -tপতাকা জন্য +2 বা +3 )

ঠিক আছে, স্পষ্টতই আমি জোয়ের সম্পূর্ণ সম্ভাবনাটি কাজে লাগাই নি। এটি প্রথম সম্ভব যখন আমি প্রথম পোস্ট করেছি।

\AR

এখানে, Rএকচেটিয়া থেকে 0 থেকে n পর্যন্ত পরিসর দেয়। তারপরে \Aএটির ধারাবাহিক উপসর্গ গ্রহণ করে ( Aএটি পরিচয় ফাংশন)। উদাহরণ:

সঙ্গে -tপতাকা (নোট: এই এখন পতাকা ছাড়া মান আউটপুট):

   (\AR)5
0
0 1
0 1 2
0 1 2 3
0 1 2 3 4
   \AR5
0
0 1
0 1 2
0 1 2 3
0 1 2 3 4
   \AR2
0
0 1
   \AR1
0
   \AR0

এটি ছাড়া:

   \AR5
[[0], [0, 1], [0, 1, 2], [0, 1, 2, 3], [0, 1, 2, 3, 4]]
   (\AR)5
[[0], [0, 1], [0, 1, 2], [0, 1, 2, 3], [0, 1, 2, 3, 4]]
   \AR2
[[0], [0, 1]]
   \AR1
[[0]]
   \AR0
[]

নিয়মগুলি কিছুটা বদলে গেল। আমার পুরানো কোডটি এন = 0 এর সাথে সঠিকভাবে আচরণ করে নি। এছাড়াও, এখন আউটপুট কেবল নেস্টেড তালিকা হতে পারে, তাই -tবাদ দেওয়া যেতে পারে।

1R1+R

এখন, Rnএকচেটিয়া থেকে 0 থেকে n পর্যন্ত একটি পরিসর দেয়। যদি 0 দেওয়া থাকে তবে এটি একটি খালি তালিকা দেয়। 1+এই ব্যাপ্তির প্রতিটি উপাদানকে 1 যোগ করে। 1R1 থেকে x পর্যন্ত মানগুলিকে মানচিত্র করে। খালি লিয়াটস, ম্যাপ করা হয়ে গেলে খালি তালিকাগুলি ফিরে আসে।

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

   1R1+R0
[]
   1R1+R5
[[1], [1, 2], [1, 2, 3], [1, 2, 3, 4], [1, 2, 3, 4, 5]]

আপডেট: আমি সবেমাত্র কিছু লক্ষ্য করেছি। ফাংশনটি 0 টি উপাদানকে স্বয়ংক্রিয়ভাবে ম্যাপ করে। নীচের উদাহরণটি -tপতাকা সহ চালানো হয় ।

   1R1+R3 5 8
1
1 2
1 2 3

1
1 2
1 2 3
1 2 3 4
1 2 3 4 5

1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
1 2 3 4 5 6 7
1 2 3 4 5 6 7 8

পুরানো: 5 বাইট ( -tপতাকা সহ)

1R1R

এটি একটি বেনামে ফাংশন যা একটি সংখ্যায় নিয়ে যায়, 1 থেকে N ( 1Rn) থেকে একটি তালিকা তৈরি করে এবং পূর্বের সীমার মানগুলিকে মানচিত্র করে, 1 থেকে N পর্যন্ত রেঞ্জের প্রতিটি আইটেমের জন্য 1 থেকে x পর্যন্ত রেঞ্জ দেয়

-tপতাকা J-মত টেবিল হিসাবে আউটপুট দেয়।

   1R1R5
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5

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


4
সুতরাং জে অ্যারে ভিত্তিক চ্যালেঞ্জগুলিতে সুবিধা পাওয়ার পক্ষে যথেষ্ট ছিল না? : ডি
অপটিমাইজার

4
@ অপ্টিমাইজার অপ্টিমাইজ করা গুরুত্বপূর্ণ।
সন্ধান করুন

4
হঠাৎ করে, আমার সবচেয়ে বেশি ভোট দেওয়া উত্তর হ'ল আমি সবচেয়ে কম সময় ব্যয় করেছি। অন্যায়।
12:58

1
আমার ধারণা জো আপনার গড় জো নয় ...
জাস্টিন

10

পাইথন 3, 48 45 বাইট

f=lambda n:n and[f(n-1),print(*range(1,n+1))]

পার্শ্ব প্রতিক্রিয়া জন্য Hooray।


2
নেস্টেড অলসতা। এখন সেটি মোচড়ে গেছে।
20

এটি একটি নিফটি ট্রিক: বিপরীত ক্রমে গুলি printচালানোর জন্য ফাংশনটি স্থাপন করা print
xnor

8

এপিএল, ৫

⍪⍳¨⍳⎕

1..n একটি ভেক্টর তৈরি করে এবং প্রতিটি উপাদানগুলির জন্য এই জাতীয় অন্য ভেক্টর তৈরি করে।

তারপরে all সমস্ত ভেক্টরগুলির বাইরে একটি কলাম তৈরি করে। এটি ফাঁকা ফাঁকা সমস্যা এড়ানো যায়।

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


পুরানো সমাধান:

{⎕←⍳⍵}¨⍳⎕

একটি ভেক্টর তৈরি করে 1..n

{⎕ ← ⍳⍵} এমন একটি ফাংশন যা প্রতিটি (¨) উপাদানটির জন্য একটি ভেক্টরকে আউটপুট দেয় 1..n একটি পৃথক লাইনে

দুর্ভাগ্যক্রমে tryapl.org এ চেষ্টা করা যায় না, কারণ there there সেখানে কাজ করে না।


কোনও লাইনে কোনও পূর্ববর্তী স্থান থাকা উচিত নয়।
এলোমেলো

আহ আপনাকে ধন্যবাদ, আমি সেটিকে মিস করেছি। শীঘ্রই সংশোধন হবে
মরিস জুকা

আমি জানতাম এপিএল একটি সমাধান হবে
কনার ও'ব্রায়েন

ওহ God
শ্বর,

6

জে, 27 বাইট

জে অ-অ্যারে সংখ্যাসূচক আউটপুট সহ ভাল নয়। এই ফাংশনটি সংখ্যাগুলি থেকে সঠিকভাবে ফর্ম্যাট করা স্ট্রিং তৈরি করে।

   ;@(<@,&LF@":@:>:@:i.@>:@i.)

   (;@(<@,&LF@":@:>:@:i.@>:@i.)) 4
1
1 2
1 2 3
1 2 3 4

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


এছাড়াও আপনি ব্যবহার করতে পারে ]\@i.পেতে;@(<@,&LF@":@:>:@:]\@i.)
seequ

6

পিএইচপি, 53 বাইট

সম্পাদনা 2: ইসমাইল মিগুয়েল কোনও ফাংশন সংজ্ঞায়নের পরিবর্তে ইনপুট থেকে পড়ার পরামর্শ দিয়েছিল, তাই পিএইচপি-র জন্য এখন স্কোর 53 বাইট:

for($a=1;@$i++<$n=$argv[1];$a.=" ".($i+print"$a\n"));

এবং আবারও, পিএইচপি ত্রুটিগুলি উপেক্ষা করার জন্য কনফিগার করা থাকলে (52 বাইট) উন্নত করা যেতে পারে:

for($a=1;$i++<$n=$argv[1];$a.=" ".($i+print"$a\n"));
for($a=1;$i++<$n=$_GET[n];$a.=" ".($i+print"$a\n"));

সম্পাদনা করুন: অস্টিন মন্তব্যগুলিতে একটি 60 বাইট সংস্করণ প্রস্তাব করেছিলেন:

function f($n){for($a=1;@$i++<$n;$a.=" ".($i+print"$a\n"));}

আমরা পিএইচপি ত্রুটি (59 বাইট) প্রদর্শন না করলে কোনটি উন্নত করা যেতে পারে:

function f($n){for($a=1;$i++<$n;$a.=" ".($i+print"$a\n"));}

$aপরবর্তী লাইনটি মুদ্রিত হবে তা সংরক্ষণ করে এবং প্রতিবার এটি কোনও স্থান মুদ্রণ করে এবং পরের সংখ্যাটি ( printসর্বদা ফিরে আসে 1) এটিতে সম্মতি জানানো হয়।


পুনরাবৃত্তি ফাংশন (65 বাইট):

function f($n){$n>1&&f($n-1);echo implode(' ',range(1,$n))."\n";}
function f($n){$n>1&&f($n-1);for(;@$i++<$n;)echo$i,' ';echo"\n";}   // Using @ to hide notices.

ত্রুটি প্রতিবেদন অক্ষম (by৪ বাইট) সহ সংক্ষিপ্ত পুনরাবৃত্তি ফাংশন:

function f($n){$n>1&&f($n-1);for(;$i++<$n;)echo$i,' ';echo"\n";}

এমনকি ত্রুটি প্রতিবেদন অক্ষম এবং বাস্তব আউটপুট (62 বাইট) এর আগে একটি খালি লাইন সহ, সংক্ষিপ্ত পুনরাবৃত্ত ফাংশন:

function f($n){$n&&f($n-1);for(;$i++<$n;)echo$i,' ';echo"\n";}

কেবল মজাদার জন্য, পুনরাবৃত্তিযোগ্য fucntions:

function f($n){for($i=0;$i<$n;print implode(' ',range(1,++$i))."\n");}    // 70 bytes
function f($n){for(;@$i<$n;print implode(' ',range(1,@++$i))."\n");}      // 68 bytes, hiding notices.
function f($n){for(;$i<$n;print implode(' ',range(1,++$i))."\n");}        // 66 bytes, error reporting disabled.

2
45 বাইট:for($a=1;@$i<$n;$a.=" ".(@++$i+print"$a\n"));
অস্টিন

@ অস্টিন: আমি একটি মন্তব্যে পড়েছি যে কোডটি অবশ্যই ইনপুট থেকে পুরো প্রোগ্রাম পড়ার, বা কোনও ফাংশন হতে হবে। খুব সুন্দর কৌশল, এটি কিছুটা / বাইট দ্বারা উন্নত করা যেতে পারে: for($a=1;@$i++<$n;$a.=" ".($i+print"$a\n"));(44 বাইট)
বেনোইট এসনার্ড

আহ ঠিক আছে, তবে আমি মনে করি আপনি এটি করবেন function f($n){for($a=1;@$i++<$n;$a.=" ".($i+print"$a\n"));}, যা 60 বাইট।
অস্টিন

প্রকৃতপক্ষে. আমি যদি আপনার উত্তরটি যুক্ত করতে আমার উত্তর সম্পাদনা করি তবে আপনি কি ঠিক আছেন?
বেনোইট এস্নার্ড

1
for($a=1;$i++<$n=$_GET[n];$a.=" ".($i+print"$a\n"));-> এটি চেষ্টা করুন ( nনম্বর সহ ইউআরএল প্যারামিটার ব্যবহার করে সম্পূর্ণ কোড )
ইসমাইল মিগুয়েল

5

সিজেম, 13 12 বাইট

ri{),:)S*N}/

এটি কীভাবে কাজ করে :

ri{       }/     "Run the block input number of times with iteration index from 0 to N-1";
   )             "Increment the iteration index (making it 1 to N)";
    ,            "Get an array of 0 to iteration index";
     :)          "Increment each of the above array members by 1";
       S*        "Join all above array numbers with space";
         N       "Add a new line. After all iterations, things are automatically printed";

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


4

পাইথ, 9 বাইট

VQjdr1hhN

সত্যিই ভেবেছিলেন যে এটি আরও খাটো করা যায়, তবে এটি তেমনটি মনে হয় না।

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

            Q = input()
VQ          For N in [0, 1, ..., Q-1]:
    r1hhN       create list [1, ..., N+1+1-1]
  jd            print joined with spaces

1
একটি বিকল্প 9: VQaYhNjdY। যদি কেবল aতালিকাটি ফিরে আসে, তবে এর মতো কিছু VQjdaYhN8 হবে
Sp3000

2
aসংক্ষিপ্তভাবে সংযুক্ত সংস্থাগুলি ফিরে আসার জন্য ব্যবহৃত হত।
অপ্টিমাইজার

আমি পাইথের সাথে পরিচিত নই, তাহলে কেন আপনি বিস্তারিত বলতে পারবেন N+1+1-1?
20

1
@ সিগ rপাইথন-রেঞ্জের ফাংশন, সুতরাং -1 ( r1Nতালিকা তৈরি করে [1, 2, ..., N-1])। কিন্তু লুপের N তম পুনরাবৃত্তির, আমি তালিকায় চান [1, 2, ..., N+1], তাই আমি যোগ করতে হবে 2করতে Nr1hhNসরাসরি অনুবাদ range(1, N+1+1)। আর একটি সম্ভাবনা হ'ল r1+N2( range(1, N+2))।
জাকুবে

বা এমনকি mhdhN, কিন্তু এটি একটি সম্পূর্ণ ভিন্ন পদ্ধতি।
জাকুবে

4

জাভাস্ক্রিপ্ট (ES6) 49 52

এ জাতীয় একটি সহজ কাজ, আমি আশ্চর্য হই যে এটিকে জেএসে আরও ছোট করা যেতে পারে (আপডেট: হ্যাঁ, পুনরাবৃত্তি ব্যবহার করে)

রিকারসিভ 49

f=n=>alert((r=w=>n-i++?w+'\n'+r(w+' '+i):w)(i=1))

Iteraive 52

f=n=>{for(o=r=i=1;i++<n;o+='\n'+r)r+=' '+i;alert(o)}

আমি এটি কোথায় পরীক্ষা করতে পারি? আমি এটি গ্রহণ করে এমন কোনও ES6 খেলার মাঠ খুঁজে পাচ্ছি না
ক্রিস্টোফার সল-স্টোরগার্ড

@ ক্রিস্টোফারসাল-স্টোরগার্ড ফায়ারফক্স ES6 কে ডিফল্ট হিসাবে সমর্থন করে। ফায়ারফক্স কনসোল।
অপ্টিমাইজার

4

জাভা, 85 84 বাইট

জাভাতে এটি আশ্চর্যজনকভাবে সংক্ষিপ্ত।

void a(int a){String b="";for(int c=0;c++<a;System.out.println(b+=(c>1?" ":"")+c));}

ইন্ডেন্টযুক্ত:

void a(int a){
    String b="";
    for(int c=0;
        c++<a;
        System.out.println(
                b+=(c>1?" ":"")+c
        ));
}

বিগটোস / জিওবিটসকে 1 বাইট ধন্যবাদ


আপনি চলন্ত এক বাঁচাতে পারেন b+=...মধ্যে println(b+=...)
জিওবিটস

3

প্রোলগ - 119

h(N):-setof(X,(between(1,N,K),setof(Y,between(1,K,Y),X)),[L]),k(L),nl,fail.
k([A|B]):-write(A),(B=[];write(" "),k(B)).

3

পাইথন 2 - 62 54 65 বাইট

def f(n):
 for x in range(n):print' '.join(map(str,range(1,x+2)))

নম্বরটি nপ্রোগ্রামের ইনপুট হিসাবে দেওয়া উচিত, কোনও ভেরিয়েবলের আরম্ভ নয়।
জাগারব

ইঙ্গিতটির জন্য ধন্যবাদ। এটা সম্পর্কে নিশ্চিত ছিল না।
পিপ্প

2
দুঃখিত, আমার আরও পরিষ্কার হওয়া উচিত ছিল। আমি যা বোঝাতে চেয়েছি তা হ'ল আপনাকে অবশ্যই Nকরণীয় N=input()বা এর অনুরূপ কিছু দ্বারা সংজ্ঞায়িত করতে হবে , যাতে আপনার প্রোগ্রামটি এটির মতো চালানো যায়। এখানে এই বিষয়ে একটি মেটা আলোচনা রয়েছে।
জাগারব

সুতরাং এই ঠিক হবে, তাই না?
মরিচ

ভাল লাগছে এখন!
জাগারব

3

জে, 9 টি অক্ষর

স্বরূপ হিসাবে, একাকী ক্রিয়া

[:":\1+i.
  • i. y- থেকে নম্বর 0থেকে y - 1
  • 1 + i. y- থেকে নম্বর 1থেকে y
  • ": y- ভেক্টর yএকটি স্ট্রিং হিসাবে উপস্থাপন।
  • ":\ y- yস্ট্রিং হিসাবে উপস্থাপিত প্রতিটি উপসর্গ ।
  • ":\ 1 + i. y - থেকে সংখ্যার প্রতিটি উপসর্গ 1 থেকে yঅক্ষরের একটি ম্যাট্রিক্স হিসাবে প্রতিনিধিত্ব।

এখন বেশ স্মার্ট। +1 টি
seequ

এটি আরও জে-এস্কু তবে এটি প্রতিটি লাইনে কোনও পিছনে স্থান না থাকা সম্পর্কে বিধি লঙ্ঘন করে না?
মাইল

@ মাইলস আসলেই তা করে! অন্য কিছু খুব জটিল হবে।
FUZxxl

3

> <> (ফিশ) , 40 37 + 3 = 40 বাইট

&1>:&:&)?;1\
(?v:n" "o1+>}:{:@
ao\~1+

আবার,> <> অন্য নম্বর মুদ্রণ অনুশীলনে শালীনভাবে ভাল করে। সাথে চালান-vইনপুট জন্য পতাকা , যেমন

py -3 fish.py -v 4

ব্যাখ্যা

&               Put n in register
1               Push 1 (call this "i")

[outer loop]

:&:&)?          If i > n...
;                 Halt
1                 Else push 1 (call this "j")

[inner loop]

}:{:@(?         If j > i...
~1+ao             Pop j, print newline, increment i and go to start of outer loop
:n" "o1+          Else print j, print a space, increment j and go to start of inner loop

3

সি (কোনও লুপ নেই, হ্যাঁ!) - 72 বাইট

b(n,c){if(n){b(n-1,32);printf("%d%c",n,c);}}r(n){if(n){r(n-1);b(n,10);}}

এটি এমন একটি ফাংশন তৈরি করে r(n)যা এইভাবে ব্যবহার করা যেতে পারে:

main(){ r(5); }

এটি এখানে কর্মে দেখুন টিউটোরিয়ালস্পয়েন্ট.কম-এ এটি কার্যকরভাবে দেখুন

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


1
প্রকৃতপক্ষে এটি 75৫ বাইট,'৪ নয়। তবে, আপনি '' এর পরিবর্তে '32' এবং '\ n' 10 দ্বারা প্রতিস্থাপন করে 72 বাইটে কেটে ফেলতে পারেন:b(n,c){if(n){b(n-1,32);printf("%d%c",n,c);}}r(n){if(n){r(n-1);b(n,10);}}
ফ্যাটালস্লিপ

1
খুব সুন্দর কৌশল, ধন্যবাদ!
এ ব্রেস্ট

ধন্যবাদ! আমি আপনাকে সি ক্যাটাগরিতে সেরা করে তোলাতে চেষ্টা করেছিলাম, তবে কিছুই ছোট করতে পারি না! সুতরাং আমি পরিবর্তে আপনার সংক্ষিপ্ত করার সিদ্ধান্ত নিয়েছে।
মারাত্মক ঘুম

64 বাইট b(n,c){n&&b(n-1,32)^printf("%d%c",n,c);}r(n){n&&r(n-1)^b(n,10);} ওয়ান্ডবক্স
o79y

2

পাইথন 2 - 72

>>> def p(N):print'\n'.join(' '.join(map(str,range(1,i+2)))for i in range(N))
... 
>>> p(5)
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5

এই সাইটে উত্তরের জন্য, আপনার একটি সম্পূর্ণ প্রোগ্রাম বা ফাংশন লিখতে হবে। এবং আপনি ফলাফল stdout মুদ্রণ করা উচিত, বা একটি ফাংশন থেকে তাদের ফিরে। এন ইনপুট থেকে পড়তে হবে বা একটি ফাংশন প্যারামিটার হিসাবে নেওয়া উচিত, ভেরিয়েবল হিসাবে পূর্বনির্ধারিত নয়।
jimmy23013

@ user23013 ঠিক আছে, স্থির!
কাসরামভিড

ফাংশন সংজ্ঞা প্রয়োজন, বাইট গণনা মধ্যে অন্তর্ভুক্ত করা তাই আমি মনে করি না এই 61. এটা সম্ভবত আপনার সেরা সুদ মত, ফাংশন কিছু সংক্ষিপ্ত ডাকতে আছে হয় না p। অন্য নোটে, আপনি দুটি স্পেস সরিয়ে ফেলতে পারেন - একটির মধ্যে printএবং অন্যটির '\n'মধ্যে )))এবং for
Sp3000

@ Sp3000 ঠিক আছে, মনোযোগ দেওয়ার জন্য ধন্যবাদ! স্থির!;)
কাসরামভিড

72:def p(N):print'\n'.join(' '.join(map(str,range(1,i+2)))for i in range(N))
315

2

পার্ল, 28

স্টিডিন থেকে প্যারামিটার পড়ে s

@x=1..$_,print"@x
"for 1..<>

কমান্ড লাইন থেকে:

perl -E'$,=$";say 1..$_ for 1..<>'

তবে আমি এখন এটি গণনা করব না (সম্ভবত 25 থেকে 29 এর মধ্যে)।


1

পাইথন

import string
N,s=int(input()),list(string.digits)
for i in range(1,N+1):
    print(' '.join(s[1:i+1]))

1
এন> = 10 হলে এটি ব্যর্থ হয় না?
seequ

@ সিগ হ্যাঁ আপনি ঠিক বলেছেন। আমি কেবল পাইথন শিখছি, ইন্টের তালিকাটিকে স্ট্রিংয়ের তালিকায় রূপান্তর করার উপায় খুঁজছিলাম।
ব্যাচুসবিলে

By৩ বাইট: for i in range(int(input())):print(' '.join("123456789"[:i+1]))- নোট করুন যে স্ট্রিংগুলি তালিকা হিসাবে বিবেচিত হবে।
seequ


1

ক্লিপ , 16

Jm[ijkw,1iwS},1n

ব্যাখ্যা

J                   .- join with newlines                           -.
 m[i        },1n    .- map numbers from 1 to numeric value of input -.
    jkw   wS        .- join with spaces                             -.
       ,1i          .- numbers from 1 to index                      -.

1

যান, 93 81 78 93 90 বাইট

func r(n int)(s string){s=string(n+48);if n!=1{s=r(n-1)+" "+s};println(s);return}

বর্তমান প্রবীন

func r(n int) (s string) {
    // Convert n to a string, we do not have to initialize s since
    // we hijacked the return value.
    // Numbers in the ascii table starts at 48
    s = string(n | 48)
    // Unless we are on our last iteration, we need previous iterations,
    // a space and our current iteration
    if n != 1 {
        // Collect the result of previous iteration for output
        s = r(n-1) + " " + s
    }
    println(s)
    // We can use a naked return since we specified the
    // name of our return value in the function signature
    return
}

আমাদের যদি এন> 9 হ্যান্ডেল করতে হয় তবে আমরা নিম্নলিখিতটি 78 বাইটে ব্যবহার করতে পারি, তবে এটির জন্য fmtপ্যাকেজটি আমদানি করা দরকার ।

func r(n int)(s string){s=Sprint(n);if n!=1{s=r(n-1)+" "+s};Println(s);return}

আমরা যদি আমদানি বিবৃতিটি অন্তর্ভুক্ত করি তবে আমি এখন আমার প্রথম দিকে ফিরে আসছি 93 92 90 বাইট

import."fmt";func r(n int)(s string){s=Sprint(n);if n>1{s=r(n-1)+" "+s};Println(s);return}

এটি অনলাইনে এখানে পরীক্ষা করুন: http://play.golang.org/p/BWLQ9R6ilw

সংস্করণটি fmtএখানে রয়েছে: http://play.golang.org/p/hQEkLvpiqt


আমি নিশ্চিত নই যে স্ট্রিং কাস্ট সম্পর্কে আমি কেমন অনুভব করছি তবে এটিকে বাইট অ্যারে রূপান্তরিত করার যে কোনও প্রচেষ্টা কেবল আরও দীর্ঘ করে দেয়
ক্রিস্টোফার সল-স্টোরগার্ড

আমি যে প্রধান সমস্যাটি দেখি তা হ'ল এটি এন> 9 এর জন্য কাজ করে না। আপনি পরিবর্তন করে একটি বাইট সংরক্ষণ করতে পারবেন !=করার >, যদিও।
জিওবিটস

@ বিগটোস, এখনই স্থির হয়েছে, আমি জানি না যদিও আমার এই importবক্তব্যটি গণনা করা উচিত
ক্রিস্টোফার সল-স্টোরগার্ড

আমি জানি যে তারা যে ভাষাগুলির সাথে আমি বেশি পরিচিত তার জন্য তারা গণনা করছে, তাই সম্ভবত হ্যাঁ।
চুষে

1

জেডএক্স / সিনক্লেয়ার বেসিক - 39 বাইট

জেডএক্স বেসিক প্রতি শব্দ প্রতি 1 বাইট ব্যবহার করে (সমস্ত বড় শব্দ), তাই বাইট আকারটি কিছুটা নিচে রাখতে সহায়তা করে ...

1 INPUT n:FOR i=1 TO n:FOR j=1 TO i:PRINT j;" ";:NEXT j:PRINT:NEXT i

এন = 8 ব্যবহার করে

enter image description here


1
খুশী হলাম। তবে জেডএক্স বেসিক প্রতিটি সংখ্যার আক্ষরিক জন্য আরও 6 টি লুকানো বাইট ব্যবহার করে (একটি সাধারণ কৌশল ছিল VAL("1")(ভিএল হিসাবে 1 বাইট 1) ইনসেটেড 1(7 বাইট))
এডিসি 65

1

আর, 28

for(i in 1:scan())print(1:i)

আউটপুট ০ এর ইনপুট মানের জন্য ভুল Also এছাড়াও, [1]প্রতিটি লাইনের শীর্ষস্থানীয় চক্রটি লঙ্ঘন করছে কিনা তা স্পষ্ট নয় ।
অ্যালেক্স এ

@AlexA। যদি আপনি প্রশ্নটি ঘনিষ্ঠভাবে লক্ষ্য করেন তবে আপনি আমার মন্তব্য দেখতে পাবেন এন = 0 এর জন্য কী আচরণ করা উচিত তা জিজ্ঞাসা করে। তবে আমাকে সঠিক দিকে নির্দেশ করার জন্য ধন্যবাদ!
freekvd

আমি মন্তব্য দেখেছি। জিনিসটি এটি 0 এর জন্য কিছুই মুদ্রণ করে না, এটি মুদ্রণ করে 1; 1 0। (ভান ;করা একটি লাইন বিরতি))
অ্যালেক্স এ।

আপনি ব্যবহার বিবেচনা করতে পারেন cat(1:i,"\n")। যদিও এটি এর চেয়ে সামান্য দীর্ঘ print(1:i), এটি [1]প্রতিটি লাইনে একটি শীর্ষস্থানীয় অন্তর্ভুক্ত করে না ।
অ্যালেক্স এ

1

টিআই-বেসিক, 28 বাইট

Input N
For(I,1,N
randIntNoRep(1,N->L1
SortA(L1
Disp L1
End

1
ফর্ম্যাটটি নির্দেশ করে বলে এটি আউটপুট দেয় না; পরিবর্তে, অ্যারে হোমস্ক্রিনে, বন্ধনী এবং সমস্ত প্রদর্শিত হয়।
lirtosiast

1

সি, 89 টি অক্ষর

// 90 characters
f(int n){int a=1,b;for(;n--;++a){for(b=0;b<a;++b)printf("%c%d",(!!b)*' ',b+1);puts("");}}

সম্পর্কে বিভ্রান্তি দূর করতে puts("");। এটি কেবলমাত্র একটি নতুন লাইনের চরিত্র ছাপায় ( এখানে যেমন দেখানো হয়েছে ):

লক্ষ্য করুন যে এটি স্টপআউটকে গন্তব্য হিসাবে ব্যবহার করে কেবল ফ্পপুট থেকে পৃথক হয় না, তবে এটি স্বয়ংক্রিয়ভাবে একটি নতুন লাইন চরিত্রও যুক্ত করে (যা fputs দেয় না)।

@ দ্য বেস্টওনের জাভা অ্যালগরিদমের সাথে এটি কিছুটা ছোট হয়েছি:

// 89 characters
f(int a){char b[999]="",*p=b+1;int c=0;for(;a--&&(sprintf(b,"%s %d",b,++c)&&puts(p)););}

puts("");কিছুই করে না আপনি 1 টি অক্ষর সংরক্ষণ করার char b[999]=""পরিবর্তে ব্যবহার করতে পারেন char b[999]={0}
মিচ

2
puts("");একটি নতুন লাইন অক্ষর মুদ্রণ।
ফেলিক্স বাইটো

1

পার্ল: 34 টি অক্ষর

print"@$_\n"for map[1..$_],1..$_;

এই কোডটি বিশেষ ভেরিয়েবলের মাধ্যমে সরবরাহ করা ইনপুট নম্বর পায় $_


1
বেশিরভাগ বন্ধনী এখানে অপ্রয়োজনীয়: print"@$_\n"for map[1..$_],1..$_এছাড়াও কাজ করে।
নটকি

আমি কোডটি সামঞ্জস্য করেছি।
ফেলিক্স বাইটো

1

সি # - 94 বাইট

একটি অনামী ফাংশন হিসাবে লিখিত যা একটি স্ট্রিং প্রদান করে, যা অনুমান দ্বারা বঞ্চিত বলে মনে হয় না।

n=>String.Join("\n\n",Enumerable.Range(1,n).Select(l=>String.Join(" ",Enumerable.Range(1,l))))

এখানে একটি অবারিত সংস্করণ দেওয়া হয়েছে (মন্তব্যগুলি বিডিসিএ ক্রমে পাঠ করা হয়):

n =>
    String.Join("\n\n",                    //...then join it together with newlines.
        Enumerable.Range(1, n).Select(l => //For each l from 1 to n, ...
                String.Join(" ",              //...and join it with spaces, ...
                    Enumerable.Range(1, l)    //...get the range from 1 to l, ...

1

বাশ + কোর্টিলস, 26 বাইট

seq $1|sed "x;G;s/\n/ /;h"
  • seq কেবল 1 থেকে n পর্যন্ত জেনারেট করে
  • sed হোল্ড স্পেসে প্রদত্ত লাইনের জন্য পুরো আউটপুট সংরক্ষণ করে এবং তারপরে পরবর্তী লাইনটি যুক্ত করে।

1

হাস্কেল, 62 57 বাইট

e=enumFromTo 1
f=putStr.unlines.map(unwords.map show.e).e

বিন্দুবিহীন শৈলী। ব্যবহারের উদাহরণ:

Prelude> f 5
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5

করায় e=enumFromTo 17 বাইট সাশ্রয় হয়।
জাগারব

@ জাগারব: ধন্যবাদ, তবে আমি যদি স্বর বদল করি তবে আমাকে enumFromTo 1মূল ফাংশনটির একটি নামও দিতে হবে, সুতরাং এটি 5 বাইট। নাম letlet e=enumFromTo 1 in (putStr.unlines.map(unwords.map show.e).e) 5
বাদে

1

গণিত, 32

Print@Row[Range@i," "]~Do~{i,#}&

1
কীভাবে TableForm[Range/@Range@#]&?
মার্টিন এেন্ডার

1
সংক্ষিপ্ত:Grid[Range/@Range@#]&
আলেফাল্ফ

এবং এটি আরও ভাল দেখায়। :) (আমি সম্পর্কে বিস্মরণ রাখা Grid।)
মার্টিন Ender

তবে আমি নিশ্চিত নই যে প্রতিটি লাইনের শেষে কোনও পিছনে স্থান নেই কিনা।
আলেফাল্ফ

ওহ ভাল পয়েন্ট। :(
মার্টিন এেন্ডার

1

স্কালা, 73 65 62 বাইট

(n:Int)=>print(1 to n map(1 to _ mkString " ") mkString "\n")

Ungolfed

def printNumberTriangle(n: Int): Unit = {
  def rowString(m: Int): String = 1.to(m).mkString(" ")
  print(1.to(n).map(rowString).mkString("\n"))
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.