f=>{var s="[";for(int i=0;i<n*n-1;)s+=i%-~n<1|i++%~-n<1?i+",":"";return s+n*n+"]";}
এটি অনলাইন চেষ্টা করুন!
এখানে পরিবর্তনগুলি অনুসন্ধানের জন্য সংখ্যার মধ্যে স্থানান্তরের ভিত্তিতে তৈরি। 0 থেকে শুরু দুই বদল আনতে হয় n-1
এবং n+1
, তাই যদি n=5
, জন্য নম্বর n-1
হবে 0,4,8,12,16,20
এবং জন্য n+1
হবে 0,6,12,18,24
। এগুলির সাথে সম্মিলন করে 1-ইনডেক্সিং (0-ইনডেক্সিংয়ের পরিবর্তে) দেয় 1,5,7,9,13,17,19,21,25
। অফসেটটি n
বিটওয়াইজ নেগেশন (বিটওয়াইস পরিপূরক অপারেশন), কোথায় ~-n==n-1
এবং ব্যবহার করে অর্জন করা হয়েছে -~n==n+1
।
পুরাতন রুপ
f=>{var s="[";for(int i=0;i<n*n-1;i++)s+=(i/n!=i%n&&n-1-i/n!=i%n?"":i+1+",");return s+$"{n*n}]";}
এটি অনলাইন চেষ্টা করুন!
এই পদ্ধতির সংখ্যাটি ত্রিভুজটিতে রয়েছে কিনা তা নির্ধারণের জন্য কলাম এবং সারি সূচকগুলি ব্যবহার করে। i/n
সারি সূচক i%n
দেয় এবং কলাম সূচি দেয়।
কেবলমাত্র নম্বর অ্যারে রিটার্নিং
যদি কেবল সংখ্যার অ্যারে তৈরি করা বাইট ব্যয়ের জন্য গণনা করা হয়, তবে ডেনিসের ভিত্তিতে নিম্নলিখিতটি করা যেতে পারে er ভার্ভিজের পরামর্শ ( using System.Linq;
অতিরিক্ত 18 বাইট যোগ করুন):
সি # (.নেট কোর) , 66 + 18 = 84 বাইট
x=>Enumerable.Range(1,x*x).Where(v=>~-v%~-x<1|~-v%-~x<1).ToArray()
এটি অনলাইন চেষ্টা করুন!