समस्या
हमें एक JavaScript फ़ंक्शन लिखना है जो एक संख्या, num, को पहला और एकमात्र तर्क के रूप में लेता है।
हमारे फ़ंक्शन को पालिंड्रोम प्राप्त करने के लिए आवश्यक विशेष चरणों की संख्या वापस करनी चाहिए। विशेष चरण है: "अंकों को उल्टा करें, और मूल संख्या में जोड़ें"। यदि परिणामी संख्या पालिंड्रोम नहीं है, तो योग के साथ प्रक्रिया को तब तक दोहराएं जब तक परिणामी संख्या पालिंड्रोम न बन जाए।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
इनपुट
const num = 87;
आउटपुट
const output = 4;
आउटपुट व्याख्या
क्योंकि शामिल चरण हैं -
87 + 78 = 165; 165 + 561 = 726; 726 + 627 = 1353; 1353 + 3531 = 4884
उदाहरण
निम्नलिखित कोड है -
const num = 87;
const countSteps = (num) => {
let res = 0;
while (!isPalindrome(num)) {
res++;
num += +('' + num).split('').reverse().join('');
}
return res;
};
const isPalindrome = num => {
let i = 0;
let str = '' + num;
while (i++ <= str.length / 2) {
if (str[i] !== str[str.length - 1 - i]) return false;
}
return true;
};
console.log(countSteps(num));
आउटपुट
4