ত্রিভুজাকার সংখ্যা


16

(না, সেইগুলি নয় )

চ্যালেঞ্জ

আপনাকে দুটি ইনপুট দেওয়া হবে। প্রথমটি হ'ল ধনাত্মক পূর্ণসংখ্যা n > 0, যা n x nসংখ্যার ডান ত্রিভুজ আউটপুট করতে ব্যবহৃত হয় 1, 2, 3, ... n। এই ত্রিভুজটি একটি কোণে শুরু হয় এবং অনুভূমিকভাবে এবং উল্লম্বভাবে এক দ্বারা এবং দুটি দ্বারা তির্যকভাবে বৃদ্ধি পায়। স্পষ্টতার জন্য নীচের উদাহরণগুলি দেখুন। কলামগুলির মধ্যে একটি স্পেস রাখুন এবং সমস্ত সংখ্যা তাদের নির্দিষ্ট কলামগুলিতে ডান-প্রান্তে রাখুন। (এটি সর্বোপরি )।

দ্বিতীয় ইনপুটটি, xআপনার পছন্দের চারটি স্বতন্ত্র একক ASCII অক্ষরগুলির মধ্যে একটি যা ত্রিভুজটির প্রারম্ভিক কোণটি নির্ধারণ করে (এবং তাই অভিমুখীকরণ)। উদাহরণস্বরূপ, যদি আপনি ব্যবহার করতে পারে 1,2,3,4বা a,b,c,dবা #,*,!,), ইত্যাদি কিভাবে অভিযোজন কাজ করে দয়া করে আপনার উত্তর উল্লেখ করুন।

এই চ্যালেঞ্জের স্পষ্টতার জন্য, আমি ব্যবহার করব 1,2,3,4যা 1উপরের-বামের 2জন্য, উপরের-ডানদিকে, এবং ঘড়ির কাঁটার দিকের সাথে মিলে যাবে।

উদাহরণ

উদাহরণস্বরূপ, এর জন্য n = 5, x = 1নিম্নলিখিত আউটপুট:

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

ইনপুট দেওয়ার জন্য n = 11, x = 1নিম্নলিখিতটি আউটপুট করুন (অতিরিক্ত স্থানগুলি নোট করুন যাতে একক অঙ্কগুলি ডান-প্রান্তিকিত হয়):

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

ইনপুট n=6এবং x=2আউটপুট সহ:

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

ইনপুট n = 3এবং x = 4, আউটপুট সহ:

3
2 3
1 2 3

ইনপুট n = 1এবং যে কোনও x, আউটপুট সহ:

1

নিয়ম

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

এই প্রশ্নটি এই এই + এই । আমি এখনও জানি না তবে আমার মনে হচ্ছে এটি তাদের মধ্যে একটির একটি অর্থ।
পোস্ট রক গার্ফ হান্টার

4
@ ওয়েট উইজার্ড আমি মনে করি না যে প্রতিদ্বন্দ্বী হওয়ার জন্য challenges চ্যালেঞ্জগুলির কোনওটিরই উত্তরগুলি তুচ্ছভাবে সংশোধন করা যেতে পারে।
অ্যাডমবর্কবার্ক

সত্যি কথা বলতে আমি অনেক লোক জানি যা ডুপ্লিকেট তৈরি করে তা বলে, তবে যতদূর আমি বলতে পারি এটি একটি নিয়ম নয়। আমার কাছে একটি সদৃশ একটি প্রশ্ন যা বিদ্যমান প্রশ্নের দ্বারা প্রদত্ত নয় এমন চ্যালেঞ্জের দিক থেকে কিছুই সরবরাহ করে না।
পোস্ট রক গার্ফ হান্টার

2
@ ওয়েট উইজার্ড মেটা sensকমত্য ।
অ্যাডমবর্কবার্ক

আমি উত্তরটি পড়েছি। এটি আরও নির্দিষ্ট প্রসঙ্গে একটি সুপারিশ সর্বজনীন রায় নয়।
পোস্ট রক গার্ফ হান্টার

উত্তর:



1

MATL , 18 বাইট

:&YhiX!VZ{' 0'2:YX

প্রথম ইনপুট হয় n । দ্বিতীয় ইনপুটটি xযা হতে পারে:

  • 0: উপরে বাঁদিকে
  • 1: নিচে বামে
  • 2: নিচের ডানে
  • 3: উপরের ডানে

(বা এটি অন্য কোনও পূর্ণসংখ্যার হতে পারে, যা মডিউল 4 ব্যাখ্যা করা হয়)।

এমএটিএল অনলাইনে এটি ব্যবহার করে দেখুন !


1

এপিএল (ডায়ালগ) , 29 বাইট

{' '@(=∘0)⌽∘⍉⍣⍺⊢↑⌽(⍳+⍵-⊢)¨⍳⍵}

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

কিভাবে?

¨⍳⍵ - প্রতিটির জন্য i পরিসীমা জন্যn

(⍳+⍵-⊢)- এর iভেক্টরাইজড সংযোজন সহ পরিসর উত্পাদন করুনn - i

↑⌽ - বিপরীত এবং সমতল

⌽∘⍉ - ডানদিকে ঘোরাও

⍣⍺⊢- xবার

' '@(=∘0) - শূন্য সরান


1

জাভাস্ক্রিপ্ট 130 128 154 142 138 135 133 বাইট

* নির্দিষ্ট প্যাডিং সমস্যা

A=(n,x)=>(j=>{for(;n--;s=x<3?S+`
`+s:s+S+`
`)
for(S=O,i=j;i;S=i-->n^~-x%3?X+S:S+X)
X=(i>n?i+O:O).padStart(j.length+1)})(n+=s=O="")||s

console.log(A(6,1))
console.log(A(6,2))
console.log(A(6,3))
console.log(A(6,4))

console.log(A(12,1))
console.log(A(12,2))
console.log(A(12,3))
console.log(A(12,4))

/* 154 solution
A=(n,x)=>{s=""
for(j=n;n--;s=x<3?S+`
`+s:s+S+`
`)
for(S="",i=j;i;S=i-->n?~-x%3?S+X:X+S:~-x%3?X+S:S+X)
X=(i>n?i+"":"").padStart((j+"").length+1)
return s
}

142 solution
A=(n,x)=>{s=""
for(j=n;n--;s=x<3?S+`
`+s:s+S+`
`)
for(S="",i=j;i;S=i-->n ^ ~-x%3?X+S:S+X)
X=(i>n?i+"":"").padStart((j+"").length+1)
return s
}

138 solution
A=(n,x)=>{s=""
for(j=n+" ";n--;s=x<3?S+`
`+s:s+S+`
`)
for(S="",i=+j;i;S=i-->n^~-x%3?X+S:S+X)
X=(i>n?i+"":"").padStart(j.length)
return s
}

135 solution
A=(n,x)=>{for(j=n+=s=O="";n--;s=x<3?S+`
`+s:s+S+`
`)
for(S=O,i=j;i;S=i-->n^~-x%3?X+S:S+X)
X=(i>n?i+O:O).padStart(j.length+1)
return s
}
*/


@ অ্যাডমবার্কবার্ক আমার মনে হয় আমি এখনই এটি ঠিক করে
ফেলেছি

0

পাইথন 2 , 124 120 বাইট

n,x=input()
r=range(n)
for l in zip(*[(r+[n]+['']*i)[-n:]for i in r][::1-x%4/2*2])[::1-x/3*2]:print' %%%ds'%len(`n`)*n%l

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

(r+[n]+['']*i)[-n:]সংখ্যাযুক্ত তালিকা কিছু খালি স্ট্রিং যোগ করা হবে, এবং, সঠিক মাপে কেটে zipদিয়ে [::1-x%4/2*2]এবং [::1-x/3*2]ঘূর্ণন করব, আর %%%ds'%len(`n`)*n(যেমন fomating জন্য একটি স্ট্রিং উত্পন্ন করবে ' %3s %3s %3s'...+ + খালি স্ট্রিং তালিকা প্রতিটি সংখ্যার ব্যবহৃত হতে পারে)


0

গণিত, 89 বাইট

(R=Reverse;Grid[{#&,R/@#&,R[R/@#]&,R@#&}[[#2]]@PadRight@Array[Range[#,s]&,s=#]/. 0->""])&   

টিআইওতে কাজ করে এমন আরও একটি সমাধান এখানে

গণিত, 122 বাইট

(R=Reverse;StringRiffle[""<>ToString/@#&/@({#&,R/@#&,R[R/@#]&,R@#&}[[#2]]@PadRight@Array[#~Range~s&,s=#]/. 0->" "),"\n"])&


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


0

কাঠকয়লা , 39 বাইট

Nτ≔EτEτ◧׋⁺ιλτI⊕⁺ιλLθσFN≔⮌EσEσ§μλσEσ⪫ι 

এটি অনলাইন চেষ্টা করুন! দ্রষ্টব্য: ট্রেলিং স্পেস লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। দ্বিতীয় মানটি অ্যান্টলিক দিকের ঘূর্ণনের সংখ্যা তাই 0 ওপরের বাম, 1 নিম্ন বাম, 2 নিম্ন ডান, 3 উপরের ডান। ব্যাখ্যা:

Nτ                                      Assign the first input as an integer
   EτEτ                                 Map in two dimensions
               ⊕⁺ιλ                     Sum of zero-indexed coordinates plus 1
              I                         Cast to string
         ‹⁺ιλτ                          Is this the upper left triangle?
        ×                               Repeat the string once if so
       ◧           Lθ                   Pad to length of first input
  ≔                  σ                  Assign to variable
                          EσEσ§μλ       Transpose the array
                         ⮌              Reflect the array, giving a rotation
                        ≔        σ      Reassign to variable
                       N                Second input as an integer
                      F                 Repeat that many times
                                  Eσ    Map over array
                                    ⪫ι  Join with spaces and implicitly print

0

জাভাস্ক্রিপ্ট (ES6), 241 222 214 বাইট

let f = 

    (n,x)=>(L=x=>(''+x).length,M=b=>x&b?(c,i,a)=>a[n-1-i]:c=>c,Array(n).fill(b=' ').map((c,i)=>b.repeat(L(n)-L(++i))+i).map((c,i,a)=>a.map((v,j)=>j>i?b.repeat(L(n)):v)).map(M(1)).map(c=>c.map(M(2))).map(c=>c.join(b)))


function printTriangle() {  // display array of strings returned by f
    o.innerText = f(
       +Length.value, // number
       Rotate.value[0] // ASCII char
    ).join('\n');
}
Length: <input type="text" value="11" id="Length"><br>
Rotate: <input type="text" value="0" id="Rotate"> 0,1,2,3<br>
<button type="button" onclick="printTriangle()">
  OK
</button>
<br>
<pre id="o"></pre>

কম গল্ফড

(n,x)=>(
    L= x=> (''+x).length,                // strlen(x)
    M= b=> x&b ? (c,i,a)=>a[n-1-i] : c=>c, // reverse or identity map
    Array(n).fill(b=' ')
   .map((c,i)=>b.repeat(L(n)-L(++i))+i)  // a complete line of numbers
   .map((c,i,a)=>a.map((v,j)=>j>i?b.repeat(L(n)):v)) // to 2-d array
                                         // with spaces for blank numbers
   .map(M(1))                            // flip vertically?
   .map(c=>c.map(M(2)))                  // flip horizontally?
   .map(c=>c.join(b))                    // convert lines to strings
)

ওরিয়েন্টেশন উপর নোট।

দ্বিতীয় প্যারামিটারটি {'0', '1', '2', '3' from এর একটি অক্ষর এবং স্বয়ংক্রিয়ভাবে দ্বারা সংখ্যায় রূপান্তরিত টাইপ করুন & অপারেটরের । সংখ্যার বিট 0 (lsb) সেট করা থাকলে লাইনগুলি উল্লম্বভাবে উল্টানো হয়। যদি বিট 1 (এনএলএসবি) সেট করা থাকে, কলামগুলি অনুভূমিকভাবে উল্টানো হবে। অন্যান্য দশমিক অঙ্কের অক্ষরগুলি অনুমানযোগ্য ফলাফল সহ ব্যবহার করা যেতে পারে।

ট্রেলিং স্পেস

আউটপুট স্ট্রিংয়ের ফাঁকা এন্ট্রিগুলি ফাঁকা স্থানের সাথে প্রতিস্থাপন করা হয়েছে, যার অর্থ লাইনগুলি ওরিয়েন্টেশন '0' এবং '1' এর পিছনে ফাঁকা স্থান রয়েছে।


0

লুয়া, 250 বাইট

function f(w,m)d=""for y=1,w do for x=1,w do d=string.format("%s%"..tostring(w):len().."s ",d,m<2 and(y+x-1<=w and x+y-1 or"")or(m<3 and(x>=y and w-x+y or"")or(m<4 and(y+x-1>=w and w+w-x-y+1 or"")or(y>=x and w-y+x or""))))end;d=d.."\n"end;print(d)end

উদাহরণ হিসাবে বর্ণিত মোডগুলির জন্য 1,2,3,4 ব্যবহার করে প্যারামিটারগুলি [w] idth এবং [m] ওড নেয়।


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