সমস্যা
একটি ক্রমবর্ধমান সিকোয়েন্স নিচের নিয়ম অনুযায়ী সংজ্ঞায়িত:
- seq(0) = 1 হলো সিকোয়েন্সের প্রথম উপাদান।
- সিকোয়েন্সের প্রতিটি x এর জন্য, y = 2*x + 1 এবং z = 3*x + 1 ও সিকোয়েন্সে থাকবে।
- সিকোয়েন্সে অন্য কোনো সংখ্যা থাকবে না।
অতএব, এই সিকোয়েন্সের প্রথম কিছু টার্ম হবে:
[1, 3, 4, 7, 9, 10, 13, 15, 19, 21, 22, 27, ...]আমাদের একটি ফাংশন লিখতে হবে যা একটি সংখ্যা n নেবে এবং এই সিকোয়েন্সের nth টার্ম ফেরত দেবে।
উদাহরণ
নিচে কোডটি দেওয়া হলো:
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