使用 javascript 和递归的回文创建器
Palindrome creator using javascript and recursion
我需要创建一个函数,它接受一个数字和 returns 这个数字的回文,通过求和它的反向数字。例如312 + 213 = 525。但更重要的是,我必须在这种情况下使用递归。
并且,例如,数字 96 需要大约 4 次迭代才能变成 4884。
你可以
- 获取号码
- 将数字转换为字符串
- 获取数字数组
- 反转数组
- 加入数组
- 转换为数字
- 添加到原始数量
- 将总和转换为字符串
- 遍历字符串并检查开头的值是否等于结尾的值
- if true return with sum
- if false call function again with sum <-- 这是递归部分。
该策略已在其他评论中进行了解释。这是实现您的目标的示例递归 JS 实现:
// Keeps recursively addding the reverse number until a palindrome
// number is obtained
function findPalindrome(num) {
numStr = num.toString();
revNumStr = numStr.split("").reverse().join("");
if (numStr === revNumStr) { // True if palindrome
return num;
} else { // Recursive part
return findPalindrome(num + parseInt(revNumStr))
}
}
console.log(findPalindrome(312));
console.log(findPalindrome(213));
console.log(findPalindrome(96));
我需要创建一个函数,它接受一个数字和 returns 这个数字的回文,通过求和它的反向数字。例如312 + 213 = 525。但更重要的是,我必须在这种情况下使用递归。
并且,例如,数字 96 需要大约 4 次迭代才能变成 4884。
你可以
- 获取号码
- 将数字转换为字符串
- 获取数字数组
- 反转数组
- 加入数组
- 转换为数字
- 添加到原始数量
- 将总和转换为字符串
- 遍历字符串并检查开头的值是否等于结尾的值
- if true return with sum
- if false call function again with sum <-- 这是递归部分。
该策略已在其他评论中进行了解释。这是实现您的目标的示例递归 JS 实现:
// Keeps recursively addding the reverse number until a palindrome
// number is obtained
function findPalindrome(num) {
numStr = num.toString();
revNumStr = numStr.split("").reverse().join("");
if (numStr === revNumStr) { // True if palindrome
return num;
} else { // Recursive part
return findPalindrome(num + parseInt(revNumStr))
}
}
console.log(findPalindrome(312));
console.log(findPalindrome(213));
console.log(findPalindrome(96));