समस्या
एक बढ़ते क्रम पर विचार करें जिसे इस प्रकार परिभाषित किया गया है -
- संख्या seq(0) =1 seq में पहला है।
- 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