Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การนับขั้นตอนเพื่อทำให้ตัวเลขเป็นพาลินโดรมใน JavaScript

ปัญหา

เราต้องเขียนฟังก์ชัน 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