समस्या
एक बढ़ते क्रम के अनुक्रम पर विचार करें जिसे निम्न प्रकार से परिभाषित किया गया है −
- संख्या seq(0) = 1, seq में पहली है।
- seq में प्रत्येक x के लिए, y = 2 * x + 1 और z = 3 * x + 1 भी seq में होने चाहिए।
- seq में कोई अन्य संख्या नहीं है।
इसलिए, इस अनुक्रम के पहले कुछ पद होंगे −
[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