বহুগুণ পরীক্ষা


21

1 এবং 99 (উভয় সহ) এর মধ্যে সংখ্যাগুলি এমনভাবে প্রদর্শন করতে কোনও প্রোগ্রামিংয়ের ভাষা ব্যবহার করুন, যাতে:

  • সংখ্যাগুলি একক স্থান দ্বারা পৃথক করা হয়,
  • যদি কোনও সংখ্যা 3 দ্বারা বিভাজ্য হয় তবে এটি প্রথম বন্ধনীতে হওয়া উচিত,
  • যদি একটি সংখ্যা 4 দ্বারা বিভাজ্য হয় তবে এটি বর্গাকার বন্ধনীতে হওয়া উচিত,
  • যদি একটি সংখ্যা 3 এবং 4 উভয় দ্বারা বিভাজ্য হয় তবে এটি উভয় বন্ধনী এবং বর্গাকার বন্ধনী (সংখ্যার নিকটে বর্গাকার বন্ধনী সহ) হওয়া উচিত।

আপনার প্রোগ্রামটি হুবহু প্রদর্শন করা উচিত:

1 2 (3) [4] 5 (6) 7 [8] (9) 10 11 ([12]) 13 14 (15) [16] 17 (18) 19 [20] (21) 22 23 ([24]) 25 26 (27) [28] 29 (30) 31 [32] (33) 34 35 ([36]) 37 38 (39) [40] 41 (42) 43 [44] (45) 46 47 ([48]) 49 50 (51) [52] 53 (54) 55 [56] (57) 58 59 ([60]) 61 62 (63) [64] 65 (66) 67 [68] (69) 70 71 ([72]) 73 74 (75) [76] 77 (78) 79 [80] (81) 82 83 ([84]) 85 86 (87) [88] 89 (90) 91 [92] (93) 94 95 ([96]) 97 98 (99)


3
আমরা কি প্রতিটি প্রবেশকে একটি নতুন লাইনে আউটপুট দিতে পারি, বা আউটপুটটি সমস্ত এক লাইনে থাকা উচিত?
ইটিএইচ প্রডাকশনগুলি

4
আউটপুট একটি স্থান দিয়ে শেষ হতে পারে। কয়েকটি উত্তর মনে হয় বলে মনে হচ্ছে।
ডেনিস

উত্তর:


7

05 এ বি 1 ই , 23 বাইট

-1 বাইট কেভিন ক্রুইজসেনকে ধন্যবাদ

тGND4Öi…[ÿ]}N3Öi…(ÿ)]ðý

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


1
-1 বাইটটি পরিবর্তন }?ð?করে ]ðý(if এবং লুপ উভয়টিই বন্ধ করুন এবং স্পেস দিয়ে পুরো স্ট্যাকটিতে যোগ দিন)
কেভিন ক্রুইজসেন

@ কেভিন ক্রুইজসেন ধন্যবাদ, আমি ঠিক তাই খুঁজছিলাম!
Okx




4

জেলি , 21 20 বাইট

³Ṗµ3,4ṚƬḍד([“])”j)K

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

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

³Ṗµ3,4ṚƬḍד([“])”j)K  Main link. No arguments.

³                     Set the return value to 100.
 Ṗ                    Pop; yield [1, ..., 99].
  µ               )   Map the chain in between over [1, ..., 9]; for each integer k:
   3,4                    Set the return value to [3, 4].
      ṚƬ                  Reverse until a loop is reached. Yields [[3, 4], [4, 3]].
        ḍ                 Test k for divisibility by [[3, 4], [4, 3]], yielding a
                          matrix of Booleans.
         ד([“])”         Repeat the characters of [['(', '['], [']', ')']] as many
                          times as the Booleans indicate.
                 j        Join the resulting pair of strings, separated by k.
                   K  Join the resulting array of strings, separated by spaces.


3

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

⪫EEE⁹⁹I⊕ι⎇﹪⊕κ⁴ι⪫[]ι⎇﹪⊕κ³ι⪫()ι 

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। ব্যাখ্যা:

    ⁹⁹                          Literal 99
   E                            Map over implicit range
        ι                       Current value
       ⊕                        Incrementd
      I                         Cast to string
  E                             Map over list of strings
            κ                   Current index
           ⊕                    Incremented
             ⁴                  Literal 4
          ﹪                     Modulo
              ι                 Current value
                []              Literal string `[]`
                  ι             Current value
               ⪫                Join i.e wrap value in `[]`
         ⎇                      Ternary
 E                              Map over list of strings
                      κ         Current index
                     ⊕          Incremented
                       ³        Literal 3
                    ﹪           Modulo
                        ι       Current value
                          ()    Literal string `()`
                            ι   Current value
                         ⪫      Join i.e wrap value in `()`
                   ⎇            Ternary
                                Literal space
⪫                               Join list
                                Implicitly print

3

জে , 54 53 বাইট

1 জোনাহকে 1 বাইট কম ধন্যবাদ

(*stdout(3|.0=4 3 1 3 4&|,1=":)#3|.']) ([',":)@>i.100

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


এটি করার জন্য ধন্যবাদ। এছাড়াও, আপনাকে stdoutএখানে করতে হবে কেন ... আমি এর আগে কখনও দেখিনি। @ ফ্রাউনফ্রোগ
জোনাহ

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

এই পন্থাটি সত্যই চালাক, ঘূর্ণন এবং ব্যবহারের পছন্দ উভয়ই #। চারপাশে ()এবং []: এর সাথে সহায়তার জন্য আমি একটি সহায়ক ক্রিয়াটি চালু করেছি g=. {.@[ , ":@] , {:@[। উচ্চার্য!
জোনা

আরও একটি প্রশ্ন: আপনি এর LFপরিবর্তে যে কোনও কারণ ব্যবহার করেছেন _। দ্বিতীয়টিও কাজ করে বলে মনে হচ্ছে।
জোনাহ

3

সি, সি ++, 136 133 131 129 128 124 বাইট

-5 বাইট জ্যাচারিকে ধন্যবাদ এবং ডি ভাষায় লিখিত () ফাংশন দ্বারা অনুপ্রাণিত (জাকারির উত্তর দেখুন)

-২ বাইটসকে ধন্যবাদ ম্রাইক্লোজন

সি সংস্করণের জন্য -১২ বাইট মিক্লোজনকে ধন্যবাদ

-4 বাইট সিলিংক্যাট ধন্যবাদ

#include<cstdio>
void f(){for(int i=0;i++<99;)printf("(%s%d%s%s%s"+!!(i%3),i%4?"":"[",i,i%4?"":"]",i%3?"":")",i%99?" ":"");}

সি নির্দিষ্ট অপ্টিমাইজেশন: 115 বাইট

#include<stdio.h>
i;f(){for(;i++<99;)printf("(%s%d%s%s%s"+!!(i%3),i%4?"":"[",i,i%4?"":"]",i%3?"":")",i%99?" ":"");}

এমএসভিসি কি আপনাকে কাজটি করতে দেয় inf f()? দুঃখিত 'আমার মন্তব্য মুছে ফেলা, ভেবেছিলাম আমার কিছু ছোট হবে (আমি করিনি)
জাকারি

@ জাচারি না, আমি মনে করি ফাংশনটি খুব সহজ এবং এটি "এফ অবশ্যই একটি ইনট ফিরিয়ে দেবে" জেনারেট করে। বিটিডাব্লু, আপনার
দ্রবণটি

1
ডাং, ডটলি ভাসা ওয়াসা printfজিনিস। আপনি কি তখন স্ট স্টিও ব্যবহার করতে পারবেন না?
জাকারিয়া

2
আপনি যে অন্য জিনিসটি ব্যবহার / শোষণ করতে পারবেন তা হ'ল কমপক্ষে জিসিসি 5.3.1 এর সাথে আপনার # অন্তর্ভুক্তির প্রয়োজন নেই এবং আপনি ফাংশন রিটার্নের ধরণও সরাতে পারেন। অতিরিক্ত হিসাবে, আপনি যদি int iফাংশনটির বাইরে (বৈশ্বিক স্কোপ) ঘোষণা করেন তবে এর মান ডিফল্ট 0 এবং ডেটা ডিফল্ট এ ডিফল্ট int। এর ফলে আপনার লুপটি 0 থেকে শুরু হবে এবং এটি ঠিক করার জন্য আপনি লুপের জন্য শর্তটি প্রকাশের ক্ষেত্রে i;f(){for(;++i<=99;)
বর্ধনটি

1
এর ")\0"+i%3পরিবর্তে পরামর্শ দিন i%3?"":")"। এছাড়াও, আমি মনে করি আপনাকে i=0লুপের শুরুতে যুক্ত করা দরকার ।
সিলিংক্যাট

3

পাওয়ারশেল, 60 বাইট

"$(1..99|%{($_,"($_)","[$_]","([$_])")[!($_%3)+2*!($_%4)]})"

ব্যাখ্যা:

  • 4 উপাদান সহ অ্যারে: $_, "($_)", "[$_]", "([$_])"
  • এবং সূচক: [!($_%3)+2*!($_%4)]
  • প্রতিটি সংখ্যার জন্য পুনরাবৃত্তি
  • ফলাফলকে স্ট্রিংয়ে রূপান্তর করুন

কম গল্ফ টেস্ট স্ক্রিপ্ট:

$f = {

$r = 1..99|%{
    ($_, "($_)", "[$_]", "([$_])") [!($_%3)+2*!($_%4)]
}
"$($r)"

}

$expected = '1 2 (3) [4] 5 (6) 7 [8] (9) 10 11 ([12]) 13 14 (15) [16] 17 (18) 19 [20] (21) 22 23 ([24]) 25 26 (27) [28] 29 (30) 31 [32] (33) 34 35 ([36]) 37 38 (39) [40] 41 (42) 43 [44] (45) 46 47 ([48]) 49 50 (51) [52] 53 (54) 55 [56] (57) 58 59 ([60]) 61 62 (63) [64] 65 (66) 67 [68] (69) 70 71 ([72]) 73 74 (75) [76] 77 (78) 79 [80] (81) 82 83 ([84]) 85 86 (87) [88] 89 (90) 91 [92] (93) 94 95 ([96]) 97 98 (99)'
$result = &$f
$result-eq$expected
$result

আউটপুট:

True
1 2 (3) [4] 5 (6) 7 [8] (9) 10 11 ([12]) 13 14 (15) [16] 17 (18) 19 [20] (21) 22 23 ([24]) 25 26 (27) [28] 29 (30) 31 [32] (33) 34 35 ([36]) 37 38 (39) [40] 41 (42) 43 [44] (45) 46 47 ([48]) 49 50 (51) [52] 53 (54) 55 [56] (57) 58 59 ([60]) 61 62 (63) [64] 65 (66) 67 [68] (69) 70 71 ([72]) 73 74 (75) [76] 77 (78) 79 [80] (81) 82 83 ([84]) 85 86 (87) [88] 89 (90) 91 [92] (93) 94 95 ([96]) 97 98 (99)

3

ম্যাথগল্ফ , 41 40 34 29 বাইট

♀({îû)(î+╫îa_'(\')ßyΓî34α÷ä§ 

দ্রষ্টব্য: এটির পিছনে স্থান রয়েছে

কেবলমাত্র আমার দ্বিতীয় ম্যাথগল্ফ উত্তর ..
-5 বাইটস @ জোকিংকে ধন্যবাদ ।

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

ব্যাখ্যা:

♀(             # Push 99 (100 decreased by 1)
  {            # Start a loop, which implicitly loops down to (and excluding) 0
   û)(         #  Push string ")("
      î+       #  Append the 1-indexed index
              #  Rotate the string once towards the right
   îa          #  Push the 1-indexed index of the loop, wrap in a list
   _           #  Duplicate it
    '(        '#  Push string "("
      \        #  Swap the top two items of the stack
       ')     '#  Push string ")"
         ßy    #  Wrap all three into a list, and join them
   Γ           #  Wrap all four into a list
               #  (We now have a list [N, "(N)", "[N]", "([N])"], where N is the index)
   î           #  Push the 1-indexed index of the loop
    34         #  Push 3 and 4 to the stack
      α        #  Wrap all three into a list
       ÷       #  Check for each if the index is divisible by it
               #  (resulting in either [0,0], [0,1], [1,0], or [1,1]
        ä      #  Convert from binary to integer
               #  (resulting in either 0, 1, 2, or 3
         §     #  Push the string at that index from the array
               #  Push a space
               # (After the loop, output the entire stack joined together implicitly)

@ জোকিং ধন্যবাদ! qবাদ দেওয়া যাবে না জানতেন এবং এটি লুপগুলিতে স্পষ্টভাবে সম্পন্ন হয়েছে। এছাড়াও, জানতাম না যে সেখানে একটি 2/3/4-স্ট্রিং অন্তর্নির্মিত রয়েছে। খুব খারাপ যে ঘোরানো কৌশলটি মোড়ানো অ্যারে দিয়ে কাজ করে না।
কেভিন ক্রুইজসেন

ঠিক আছে, এটি আরও বেশি যে আমি প্রতিটি পুনরাবৃত্তির পরিবর্তে প্রোগ্রামের শেষে ইমপ্লিট আউটপুটটির জন্য ট্রেড করেছি
জো কিং

@ জোকিং হ্যাঁ, তবে আমি জানতাম না এটি কেবল শীর্ষের পরিবর্তে পুরো স্ট্যাকটি একত্রিত হবে। :)
কেভিন ক্রুইজসেন

আমার সমাধানটি 40 বাইটের কাছে পৌঁছেছিল, যদিও আমি ভুলভাবে পড়েছি এবং ভেবেছিলাম বর্গাকার বন্ধনীগুলির পরিবর্তে কোঁকড়া বন্ধনী ব্যবহার করা উচিত। সমাধান ভাল কাজ!
সর্বোচ্চ


2

লুয়া, 161 123 বাইট

b=""for i=1,99 do;c,d=i%3==0,i%4==0;b=b..(c and"("or"")..(d and"["or"")..i..(d and"]"or"")..(c and")"or"").." "end;print(b)

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

Ungolfed:

b = ""
for i = 1, 99 do
    c = 1 % 3 == 0
    d = 1 % 4 == 0
    a = ""
    if c then
        a = a .. "("
    end
    if d then
        a = a .. "["
    end
    a = a .. i
    if d then
        a = a .. "]"
    end
    if c then
        a = a .. ")"
    end
    b = b .. a .. " "
end
print(b)


2

সি (জিসিসি) , 84 বাইট

main(i){while(99/i++)printf("%s%s%d%s%s ","("+i%3,"["+i%4,i-1,"]"+i%4,")"+i%3);}

প্রতিটি "বন্ধনী স্ট্রিং" এর শুরুতে একটি নাল বাইট থাকে।

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


এবং "(" + i% 3 তে আপনি কীভাবে সেই ঠিকানাটি আই = ২ এর জন্য শূন্য চর মানের দিকে নির্দেশ করতে পারেন? "[" + I% 4 এর জন্য আমার জন্য {২,৩ in?
রোজলুপি

এটি জিসিসি নিয়ে কাজ করে, যা যথেষ্ট ভাল, কারণ পিপিসিজি তাদের বাস্তবায়ন দ্বারা ভাষার সংজ্ঞা দেয়।
ডেনিস

আমি মনে করি আপনি এই কোডটি জিসিসি সংকলকের প্রতিটি প্রয়োগে
ঠিকঠাকভাবে তৈরি

@RosLuP জিসিসি করে কাজ অধিকাংশ কম্পিউটারে একই ভাবে যদিও, অন্তত একই স্থাপত্য সাথে যেকোনো কিছুর উপর
হওয়া ASCII শুধুমাত্র

@ এএসসিআইআই-কেবলমাত্র সম্ভব যদি স্থানের জন্য অনুকূলিত করা হয় বা গতির জন্য ফলাফলটি আলাদা হয় ... আমি জানি না যে এটি স্ট্যান্ডার্ডের বাইরে কিনা ...
রোজলুপি

2

পাওয়ারশেল , 67 62 বাইট

"$(1..99|%{'('*!($x=$_%3)+'['*!($y=$_%4)+$_+']'*!$y+')'*!$x})"

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

মূলত একটি বুলিয়ান ভেরিয়েবল ( স্পষ্টত 1 বা 0 তে কাস্ট করা হয়) স্ট্রিং গুণের সময় ব্যবহার করে একটি FizzBuzz । এই স্ট্রিংগুলি পাইপলাইনে রেখে দেওয়া হয় এবং উদ্ধৃতিগুলির ভিতরে একটি স্ক্রিপ্ট ব্লকের মধ্যে জড়ো হয়। যেহেতু $OutputFieldSeparatorঅ্যারের জন্য ডিফল্ট হ'ল ফাঁকা স্থান, তাই এটি স্পষ্টতই আমাদের স্পেস-সীমাবদ্ধ অ্যারে উপাদান দেয়।


2

সি #, 124 117 123 বাইট

-5 বাইট কেভিন ক্রুইজসেনকে ধন্যবাদ

x=>{for(int i=0;i++<99;)System.Console.Write((i%3<1?"(":"")+(i%4<1?"[":"")+i+(i%4<1?"]":"")+(i%3<1?")":"")+(i>98?"":" "));}

এর সাথে পরীক্ষা করুন:

Action<int> t = x=>{for(int i=0;i++<99;)System.Console.Write((i%3<1?"(":"")+(i%4<1?"[":"")+i+(i%4<1?"]":"")+(i%3<1?")":"")+(i>98?"":" "));}
t.Invoke(0);
Console.ReadKey();

সি # এর ঘৃণায় আমি দেখতে পাচ্ছি। সি # কী কোনও পূর্ণসংখ্যা অপারেটরের বাম আর্গুমেন্ট হিসাবে পূর্ণসংখ্যার অনুমতি দেয়, বা এটি একটি বুলিয়ান হতে হবে?
জাকারি

আমি সি # সম্পর্কে খুব বেশি কিছু জানি না, তবে আপনি কি এর xপরিবর্তে ব্যবহার করতে পারবেন i, এভাবে চিন্তার কোনও কারণ নেই int ? (আপনাকে অবশ্যই এটি সেট করতে হবে অবশ্যই)।
জাকারি

@ জাকারি না, এটি একটি CS0029 ত্রুটি উত্পন্ন করে "স্পষ্টত ইন্ট ইন বুলিয়ান রূপান্তর করতে পারে না"। এবং হ্যাঁ, আমি ব্যবহার iকরতে পারি এবং আমি যখন 0 এ এটিকে আরম্ভ করতে পারি Invoke। তবে তার মানে কি এই নয় যে আমাকে টি ( Action<int>) এবং কল ( t.Invoke(0)) কলকে বাইট্যাক্টে অন্তর্ভুক্ত করতে হবে?
হাটসুপয়েন্টারকুন

আমি জিজ্ঞাসা করছি ভালো কিছু x=>{for(x=0;x++<99;)Console.Write((x%3==0?"(":"")+(x%4==0?"[":"")+x+(x%4==0?"]":"")+(x%3==0?")":"")+(x%99==0?"":" "));};কাজ করবে কিনা ।
জাকারি

1
পাঁচজনই ==0হতে পারে <1
কেভিন ক্রুইজসেন


2

রুবি , 72 66 বাইট

p [*1..99].map{|x|a=x
a="[#{x}]"if x%4<1
a="(#{a})"if x%3<1
a}*' '

অতিরিক্ত ট্রিমিংয়ের জন্য @ জোনাথন-ফ্র্যাচ এবং @ কনর-ওব্রিয়েনকে ধন্যবাদ।


হ্যালো এবং পিপিসিজিতে আপনাকে স্বাগতম! 70 বাইট
জোনাথন ফ্রেচ

পিপিসিজিতে আপনাকে স্বাগতম! এখানে @ জোনাথানফ্রন্টের পরামর্শের বাইরে আরও 4 বাইট রয়েছে, by 66 বাইটের জন্য , যেহেতু a.join bএকটি অ্যারে aএবং স্ট্রিংয়ের bসমতুল্যa*b
কনার ও ব্রায়ান

2

পাওয়ারশেল, 98 82 74 67 63 62 বাইট

একটি ভোপ্পিং -31 বাইটস @ ভেস্কাহ -5 বাইটকে ধন্যবাদ কেবলমাত্র ASCII- এর জন্য ধন্যবাদ

(1..99|%{(($a=($_,"[$_]")[!($_%4)]),"($a)")[!($_%3)]})-join' '

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

আমি এখানে কী করেছি তা এখনও নিশ্চিত নই।


70 বাইটের জন্য কেবল কিছু দ্রুত গল্ফ করা । আপনাকে স্ট্রিং হিসাবে কাস্ট করতে হবে না এবং "$a"এখনও মানটিতে প্রতিস্থাপন করবে। (দ্রষ্টব্য: একক-কোটগুলি প্রতিস্থাপন করবে না $foo, কেবল ডাবল-কোট)। আরেকটি কৌশলটি হল কেবলমাত্র 0 বা 1 এর জন্য যত্ন নেওয়া যাতে আপনি বাইট সংরক্ষণ করতে বুলিয়ান যুক্তি ব্যবহার করতে পারেন
ভেসকা

67 তালিকাগুলি যদি আপনি তালিকার তালিকাও ব্যবহার করেন তবে।
ভেসকা




1

পার্ল-ই, 60 বাইট

$,=$";say map$_%12?$_%3?$_%4?$_:"[$_]":"($_)":"([$_])",1..99

কিছু সংখ্যক বাইটস সংরক্ষণ করা যায় যদি আমরা সংখ্যার মধ্যে নিউলাইনগুলি ব্যবহার করতে পারি: সেক্ষেত্রে আমরা লুপে সরানোর সময় $,=$";, অপসারণ করতে পারি , mapএকটি forলুপে পরিবর্তন করতে পারি say


1
আপনি এবিগেল? উদ্ভাবক ? /^1$|^(11+?)\1+$/
এমএস 210

1
কি দারুন. তোমার এখানে থাকার কি সম্মান!
এমএস 210

1

পার্ল 6 , 51 48 বাইট

put {$_%3??$^a!!"($a)"}(++$_%4??$_!!"[$_]")xx 99

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


আমি তালিকা এবং অ্যারের উপস্থাপনা, মত পার্থক্য অপব্যবহার করতে যাচ্ছিলেন এই , কিন্তু আমি নিশ্চিত নই পুরো তালিকা কাছাকাছি পরিক্ষেপ বন্ধনী পরিত্রাণ পেতে কিভাবে ...
জো রাজা

@ জোকিং আমি সে সম্পর্কেও ভেবেছিলাম, তবে আমি কেবল এই 51-বাইটার নিয়ে এসেছি
nwellnhof

1

ব্যাচ, 145 বাইট

@set s=
@for /l %%i in (1,1,99)do @set/an=%%i,b=n%%4,p=n%%3&call:c
@echo%s%
:c
@if %b%==0 set n=[%n%]
@if %p%==0 set n=(%n%)
@set s=%s% %n%

কোডটি সাবরুটিনের মধ্যে পড়ে তবে স্ট্রিংটি ইতিমধ্যে এই পয়েন্ট দ্বারা মুদ্রিত হয়েছে যাতে কোডটি নিরীহভাবে কার্যকর করে।





1

বাশ, 61 বাইট

-14 বাইট, ডেনিস ধন্যবাদ

seq 99|awk '{ORS=" ";x=$1%4?$1:"["$1"]";print$1%3?x:"("x")"}'

ব্যাখ্যা

অনেকটাই অকপট:

  • seq 1..99 উত্পাদন করে
  • আমরা পাইপ করি যে awkআউটপুট রেকর্ড বিভাজক ( ORS) স্পেসে সেট করে যাতে আউটপুট একক লাইন থাকে।
  • যখন মূল সংখ্যাটি 4 দ্বারা বিভাজ্য হয় তখন কেবল "[]" যোগ করে এবং তারপরে যোগ করে, "()" যখন 3 দ্বারা বিভাজ্য হয়।

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


1

জাভাস্ক্রিপ্ট (নোড.জেএস) , 57 বাইট

f=(n=99)=>n&&f(n-1)+(s=n%4?n:`[${n}]`,n%3?s:`(${s})`)+' '

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

সম্প্রদায় কিউজে পরিবর্তিত হয়েছে এটির উপর নির্ভর করে অপটিমাইজ


আপনি তা করে উল্লেখযোগ্যভাবে সংক্ষিপ্ত করতে পারবেন${n%4?n:`[${n}]`}
ETH প্রোডাকশনগুলি

66 বাইট (ETH এর পরামর্শ সহ)
Alion





1

জাভা 8, 92 91 বাইট

-1 বাইট @ ডানাকে ধন্যবাদ

i->{for(;i++<99;)out.printf((i>1?" ":"")+(i%12<1?"([%d])":i%3<1?"(%d)":i%4<1?"[%d]":i),i);}

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

বিকল্প সমাধান, 82 বাইট (আউটপুট পিছনে স্থান সহ - নিশ্চিত যে এটি অনুমোদিত কিনা):

i->{for(;i++<99;)out.printf((i%12<1?"([%d])":i%3<1?"(%d)":i%4<1?"[%d]":i)+" ",i);}

ব্যাখ্যা:

for(;i++<99;)- একটি লুপের জন্য যা iইনপুট হিসাবে পুনরায় ব্যবহৃত হবে (এই ক্ষেত্রে 0 হিসাবে নেওয়া হবে) এর মান থেকে 99

out.printf(<part1>+<part2>,i); - স্ট্রিংটি অবিলম্বে স্ট্যান্ডআউটের মান সহ প্রিন্ট করার আগে ফর্ম্যাট করে i

যেখানে <part1>হয় (i>1?" ":"")- স্থান ছাপে সামনে সংখ্যা মুদ্রণ যদি না যে সংখ্যা 1, যে ক্ষেত্রে এটা স্থান বাদ

এবং <part2>হয় (i%12<1?"([%d])":i%3<1?"(%d)":i%4<1?"[%d]":i)- যদি i3 এবং 4 উভয় দ্বারা বিভাজ্য হয় তবে এর iচারপাশে বর্গাকার এবং বৃত্তাকার দুটি বন্ধনী রয়েছে; অন্যথায় i3 দ্বারা বিভাজ্য হলে iএর বৃত্তাকার বন্ধনী রয়েছে; অন্যথায় i4 দ্বারা বিভাজ্য হলে iএর স্কোয়ার বন্ধনী রয়েছে; অন্যথায়, iবন্ধনী নেই।


প্রতিটি লুপ পুনরাবৃত্তির শুরুতে স্থানটি সরিয়ে একটি বাইট সংরক্ষণ করুন(i>1:" ":"")
ডানা

যে শুধুমাত্র would যদি আমি বিপরীত ফলাফলের (দেখুন মুদ্রিত কাজ এই ) কিন্তু would আসলে সংরক্ষণ 2 পরিবর্তে বাইট 1.
NotBaal

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

1
"এটি চেষ্টা করুন অনলাইনে" লিঙ্কগুলি ভাঙ্গা বলে মনে হচ্ছে। আমি ভাবছিলাম i->{for(;i++<99;)out.printf((i>1?" ":"")+(i%12<1?"([%d])":i%3<1?"(%d)":i%4<1?"[%d]":i),i);}?
ডানা

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