একটি বংশধর পিরামিড আঁকুন (সংযোজন)


11

চ্যালেঞ্জ

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

ফলাফলটি স্ট্রিং হিসাবে ট্যাব ব্যবহার করে আউটপুট করা হয় \t

দ্রষ্টব্য: প্রতিটি লাইনে পিছনের ট্যাবগুলির প্রয়োজন হয় না

1\t\t2\t\t3\n\t3\t\t5\t\n\t\t8\t\t results in 
1       2       3
    3       5   
        8       

স্থান হিসাবে খালি অবস্থান ব্যবহার করে ptionচ্ছিকভাবে ফলাফলটিকে অ্যারে হিসাবে আউটপুট করা যায়।

[[1,,2,,3],
[,3,,5,],
[,,8,,]]

উদাহরণ:

প্রদত্ত 4,5,7,3,4,2আউটপুট:

4       5       7       3       4       2
    9       12      10      7       6
        21      22      17      13
            43      39      30
                82      69
                    151

বিধি

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

পরীক্ষার কেস

Input: 1,3,5

1       3       5
    4       8
        12


Input: 9,8,7,6,5

9       8       7       6       5
    17      15      13      11
        32      28      24
            60      52
                112


Input: 5,5,2,5

[[5,,5,,2,,5],
[,10,,7,,7,],
[,,17,,14,,],
[,,,31,,,]]

Input: 3,3,3

[[3,,3,,3],
[,6,,6,],
[,,12,,]]

জয়ের মানদণ্ডটি


দ্রষ্টব্য: এই চ্যালেঞ্জটি পাস্কালের ত্রিভুজ উত্পন্ন করার খুব কাছাকাছি । পার্থক্যটি হ'ল কাস্টম শুরুর ক্রম (প্যাস্কাল 1 এবং আরোহী মোডে চলে যায়, এটি একটি ইনপুট থেকে এবং বংশোদ্ভূত মোডে)।

স্যান্ডবক্স পোস্ট



non-negative integersআমাদের কি পরিচালনা করতে হবে 0? শূন্য স্থানগুলি এস দ্বারা ভরা থাকলে কিছু গল্ফিংয়ের সম্ভাবনা রয়েছে 0
জংহওয়ান মিন

আমরা কি শূন্য পজিশনে ট্যাব বা ফাঁকা স্ট্রিং / অ্যারে সহ একটি অ্যারে ফিরিয়ে দিতে পারি?
অ্যাডম

2
"শীর্ষস্থানীয় / পিছনে থাকা নতুন লাইনের এবং ট্যাবগুলিকে অনুমতি দেওয়া হয়েছে" - আমরা কী অ্যারে আউটপুটে নীচে ফাঁকা ফলাফল (গুলি) অন্তর্ভুক্ত করতে পারি?
জোনাথন অ্যালান

উত্তর:


4

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

Tacit উপসর্গ ফাংশন। খালি স্লট চিহ্নিতকারী হিসাবে একটি একক স্থান ব্যবহার করে। সংখ্যা / স্পেসের তালিকার তালিকা ফেরত দেয়।

⍳∘≢{∊(⍺⍴''),,∘' '¨2+/⍣⍺⊢⍵}¨⊂

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

⍳∘≢{... }¨⊂ প্রতিটি ফাংশন নিচে প্রয়োগ ɩ ndices  এর  সঙ্গে ট্যালি সমগ্র যুক্তি:

⊢⍵ সঠিক যুক্তি উপস্থাপন করুন (মূল ইনপুট)

2+/⍣⍺ বাম আর্গুমেন্ট দ্বারা চিহ্নিত হিসাবে যতবার জোড় জোড় প্রয়োগ

,∘' '¨ প্রতিটি সংখ্যায় একটি স্থান যুক্ত করুন

(), এটি নিম্নলিখিত সংযুক্ত করুন:

  ⍺⍴'' খালি স্ট্রিংয়ের বাম-যুক্তি উপাদান (স্পেস দিয়ে প্যাড করা)

ε nlist (চেপ্টা)




3

জেলি ,  14  13 বাইট

14 -> 13 ধরে নিচ্ছে তালিকার ফাঁকা স্থানগুলিতে কেবল তালিকা বিন্যাসের আউটপুটটিতে প্রবেশের অনুমতি রয়েছে; যদি না হয় তবে আমি 14 এ ফিরে যাব ( জিজ্ঞাসা করা )

+ƝƬK€z⁶Zṙ"JC$

একটি monadic লিঙ্ক। আউটপুট শূন্যস্থান হিসাবে স্থান অক্ষর ব্যবহার করে তালিকার একটি তালিকা যা (কেবলমাত্র একটি প্রবেশের স্থান অনুসরণ করে)।

এটি অনলাইন চেষ্টা করুন! (পুরো প্রোগ্রাম হিসাবে মোড্ডিক লিঙ্কটি চালানোর কারণে তালিকা কাঠামো দেখানোর জন্য একটি পাদচরণ অন্তর্ভুক্ত রয়েছে যা ছড়িয়ে ছিটিয়ে থাকা আউটপুটটি ছাপিয়ে দেবে))


3

হুশ , 22 বাইট

zoΣ~+R"	"oJ"		"msNU¡Ẋ+

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

ব্যাখ্যা

z(Σ~+R" "(J"  "ms))NU¡Ẋ+  -- example input: [1,2,3]
                     ¡    -- infinitely do and collect in list
                      Ẋ+  -- | sum adjacent
                          -- : [[1,2,3],[3,5],[8],[],[],...
                    U     -- keep up until first repetition: [[1,2,3],[3,5],[8],[]]
z(                )N      -- zip with natural numbers under (example on 1 [1,2,3])
   ~+    (       )        -- | join arguments modified by
     R" "                 -- | | replicate tab: " "
               ms         -- | | show each: ["1","2","3"]
          J"  "           -- | | join with 2 tabs: ["1","  ","2","  ","3"]
                          -- | : [" ","1","  ","2","  ","3"]
  Σ                       -- | concatenate: " 1  2  3"
                          -- : [" 1  2  3","  3  5","   8"]



2

পাইথন 3 , 101 93 80 বাইট

7 বাইট সংরক্ষণ করা হয়েছে ( map(str,x)পরিবর্তে for inএবং init y হিসাবে '') এবং জো কিংয়ের জন্য ধন্যবাদ (নতুন x and[পরিবর্তে print() পেছনের নতুন লাইনের হাত থেকে মুক্তি পেয়েছে ।

ওভিএসকে ধন্যবাদ 13 বাইট ( [*map(sum,zip(x,x[1:]))]পরিবর্তে [x[j]+x[j+1]for j in range(len(x)-1)]) সংরক্ষণ করা হয়েছে

f=lambda x,y='':x and[y+'		'.join(map(str,x))]+f([*map(sum,zip(x,x[1:]))],y+'	')

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


@ ওভস: আহ, দুর্দান্ত আমি বুঝতে পারছিলাম আমি যোগফলটি মানচিত্র করতে পারি। ধন্যবাদ!
এমিগিনা

1

রেটিনা , 35 বাইট

+¶<`\d+ *(?=(\d+)?)
    $#1*$.(*_$1*)   

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

+

বাফার পরিবর্তন হওয়া বন্ধ না হওয়া পর্যন্ত পুনরাবৃত্তি করুন,

¶<`

প্রতিস্থাপনের আগে বাফারের সামগ্রীগুলি পেছনের নতুন লাইনের সাথে মুদ্রণ করুন এবং

\d+ *(?=(\d+)?)
    $#1*$.(*_$1*)   

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



1

লাল , 151 বাইট

func[b][m: length? b repeat n m[loop n - 1[prin"^-"]print replace/all
form b" ""^-^-"c: copy[]repeat i -1 + length? b[append c b/(i) + b/(i + 1)]b: c]]

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

আরও পঠনযোগ্য:

f: func [ b ] [
    m: length? b
    repeat n m [
        loop n - 1 [ prin tab ]
        print replace/all form b " " rejoin [ tab tab ]
        c: copy []
        repeat i (length? b) - 1 [
            append c b/(i) + b/(i + 1)
        ]
        b: c
    ]
]


1

সি # (ভিজ্যুয়াল সি # সংকলক) , 163 বাইট

b=>{var s="";var c=b.Length;for(int i=0;i<c;i++){for(int z=0;z<i;z++)s+="\t";for(int x=0;x<c-i;x++){s+=b[x]+"\t\t";b[x]=x==c-i-1?0:b[x]+b[x+1];}s+="\n";}return s;}

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

রিডেবল:

b =>    {
            var s = "";
            var c = b.Length;
            for (int i = 0; i < c; i++)
            {
                for (int z = 0; z < i; z++)
                    s += "\t";
                for (int x = 0; x < c - i; x++)
                {
                    s += b[x] + "\t\t";
                    b[x] = x == c - i - 1 ? 0 : b[x] + b[x + 1];
                }
                s += "\n";
            }
            return s;
        }

1

জাপট -Rx , 20 18 বাইট

দ্বিতীয় লাইনে একটি পিছনের ট্যাব রয়েছে।

Nc¡=ä+
Ëq' ² iEç'  

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


ব্যাখ্যা

                  :Implicit input of array U
N                 :The array of inputs (NOT the input array)
 c                :Concatenate
  ¡               :  Map U
    ä+            :    Consecutive sums of U
   =              :    Reassign to U for next iteration
\n                :Reassign the resulting 2D-array to U
Ë                 :Map each array at index E
 q                :  Join with
  '\t             :   Tab
     ²            :   Repeated twice
       i          :  Prepend
          '\t     :   Tab
         ç        :   Repeated
        E         :   E times
                  :Implicitly join with newlines, trim (not strictly necessary) and output.
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.