কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে বিউটিফুল অ্যারেঞ্জমেন্ট অফ নাম্বার


বিউটিফুল অ্যারেঞ্জমেন্ট:

মনে করুন ১ থেকে num পর্যন্ত প্রাকৃতিক সংখ্যা আছে। একটি বিউটিফুল অ্যারেঞ্জমেন্ট হলো এমন একটি অ্যারে যা এই সংখ্যাগুলো দিয়ে তৈরি হয়েছে এবং যেটিতে i-তম পজিশন (১ ≤ i ≤ N) এর জন্য নিচের শর্তগুলোর যেকোনো একটি সত্য হয়:

  • i-তম পজিশনের সংখ্যা i দিয়ে বিভাজ্য।

  • i, i-তম পজিশনের সংখ্যা দিয়ে বিভাজ্য।

সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি সংখ্যা num নেবে এবং num-এর জন্য কতগুলো বিউটিফুল অ্যারেঞ্জমেন্ট তৈরি করা যায় সেটি রিটার্ন করবে।

উদাহরণ:

ইনপুট হলে:

const input = 2

আউটপুট হবে:

const output = 2

আউটপুট ব্যাখ্যা

প্রথম অ্যারেঞ্জমেন্ট: [1,2]

দ্বিতীয় অ্যারেঞ্জমেন্ট: [2,1]

উদাহরণ

কোডটি নিচের মতো (ব্যাকট্র্যাকিং + বিটমাস্ক):

const num = 4; const countArrangements = (num = 1) => { let ans = 0 const recur = (curr, vis) => { if (curr === 1){ ans++; }else{ for (let i = num; i; i--) { let possible = (i % curr === 0 || curr % i === 0); let visited = vis & 1 << i; if (possible && !visited){ recur(curr-1, vis | 1 << i); } } } }; recur(num, 0); return ans; }; console.log(countArrangements(num));

কোড ব্যাখ্যা:

আমরা একটি রেজাল্ট ভেরিয়েবল (ans) এবং একটি রিকার্সিভ ফাংশন ডিফাইন করেছি যা সমস্ত সম্ভাবনা নেভিগেট করে। এই ফাংশনের দুটি আর্গুমেন্ট লাগে: বর্তমানে কোন নম্বর প্লেস করা হচ্ছে (curr) এবং কোন স্পটগুলো ইতিমধ্যে ভিজিট করা হয়েছে (vis)।

আউটপুট

কনসোলে আউটপুট (num=4 এর জন্য):

8

  1. জাভাস্ক্রিপ্ট Numbers উদাহরণ

  2. জাভাস্ক্রিপ্টে প্রাকৃতিক সংখ্যা সিকোয়েন্সের nth ডিজিট খুঁজে বের করা

  3. জাভাস্ক্রিপ্টে বিশেষ সংখ্যা যাচাই করা

  4. জাভাস্ক্রিপ্টে সংখ্যার সাথে সাফিক্স जोড়া