【发布时间】:2020-04-19 09:12:45
【问题描述】:
我想创建一个能够确定数字是相同还是回文的函数。如果给定数字是回文或相同则返回 2,否则如果它不是回文或相同则我需要通过将给定数字加 1 来检查它两次。之后如果它是回文或相同则返回 1。如果没有回文或相同数字找到然后返回 0。我编写的函数在我将数字设为 11211 时给出了确切的结果,但如果我输入 1122 或其他随机值,该函数不会显示任何响应。请帮我找出我的功能错误在哪里。
function sameOrPalindrome(num) {
var c = 0;
var al = 0;
var normalArray = num.toString().split("");
var revArray = num.toString().split("").reverse();
for (var i = 0; i < normalArray.length; i++) {
if (normalArray[i] != revArray[i]) {
c++;
}
}
if (c == 0) {
return 2;
} else {
num++;
al = sameOrPalindrome(num);
if (al == 2) {
return 1;
} else {
num++;
al = sameOrPalindrome(num);
if (al == 2) {
return 1;
}
}
}
return 0;
}
console.log("1233",sameOrPalindrome(1233))
【问题讨论】:
-
什么是相同号码?请添加一些用例和想要的结果。
-
它可能永远循环
-
相同的数字意味着如果我给 1111 函数应该返回 2
-
所以同样的意思是一个数字重复了很多次——所以
1114444和66666是“相同的”但不是1221? -
1221 是一个回文数,如果我输入这个数,函数应该返回 2
标签: javascript arrays palindrome