সমস্যা
একটি ক্রমবর্ধমান ক্রম বিবেচনা করুন যা নিম্নরূপ −
সংজ্ঞায়িত করা হয়েছে- সংখ্যা seq(0) =1 হল সেক-এর প্রথমটি৷ ৷
- seq-এ প্রতিটি x এর জন্য, তারপর y =2 * x + 1 এবং z =3 * x + 1 অবশ্যই seq-এ থাকতে হবে।
- সেক-এ অন্য কোন সংখ্যা নেই।
অতএব, এই ক্রমটির প্রথম কয়েকটি পদ হবে −
[1, 3, 4, 7, 9, 10, 13, 15, 19, 21, 22, 27, ...]
আমাদের এমন একটি ফাংশন লিখতে হবে যা একটি সংখ্যা n নেয় এবং এই ক্রমটির nতম পদটি প্রদান করে।
উদাহরণ
নিম্নলিখিত কোড -
const num = 10; const findNth = n => { let seq = [1], x = 0, y = 0 for (let i = 0; i < n; i++) { let nextX = 2 * seq[x] + 1, nextY = 3 * seq[y] + 1 if (nextX <= nextY) { seq.push(nextX) x++ if (nextX == nextY) y++ } else { seq.push(nextY) y++ } } return seq[n]; } console.log(findNth(num));
আউটপুট
22