号码回文javascript

时间:2018-02-16 14:56:26

标签: javascript

您好我正在用javascript编写代码,以确定4位数是否是回文。首先,我检查数字是否有数字,如果是,我使用/和%查找每个数字,然后检查第一个数字是否与最后一个数字匹配,第二个数字是否与第三个数字匹配。事情是结果总是数字而不是palindrom。有人可以帮助我吗?

var numri = window.prompt("Vendosni numrin");
numri = parseInt(numri);
while (numri > 9999 || numri < 1000) {
  alert("Number not 4 digits");
  var numri = window.prompt("Vendosni numrin");
  numri = parseInt(numri);
}
var shifra4 = numri % 10;
numri = numri / 10;
var shifra3 = numri % 10;
numri = numri / 10;
var shifra2 = numri % 10;
var shifra1 = numri / 10;

if (shifra4 == shifra1 && shifra2 == shifra3)
  alert("Number palindrome");
else
  alert("Number not palindrome");

2 个答案:

答案 0 :(得分:1)

为什么不使用字符串本身?使用splitreverse

var numri = window.prompt("Vendosni numrin");
var items = numri.split( "" );
var isPalindrome = items.join( "" ) === items.reverse().join( "" );

答案 1 :(得分:1)

numri/10可以(在大多数情况下)返回一个浮点数,因此您需要获取该值的Math.floor()

&#13;
&#13;
var numri = window.prompt("Vendosni numrin");
numri = parseInt(numri);
while (numri > 9999 || numri < 1000) {
  alert("Number not 4 digits");
  var numri = window.prompt("Vendosni numrin");
  numri = parseInt(numri);
}
var shifra4 = numri % 10;
numri = Math.floor(numri / 10);
var shifra3 = numri % 10;
numri = Math.floor(numri / 10);
var shifra2 = numri % 10;
var shifra1 = Math.floor(numri / 10);

if (shifra4 == shifra1 && shifra2 == shifra3)
  alert("Number palindrome");
else
  alert("Number not palindrome");
&#13;
&#13;
&#13;

可能有另一种方法可以将字符串与其反转值进行比较

&#13;
&#13;
var numri = window.prompt("Vendosni numrin");
if(numri===numri.split("").reverse().join(""))
  alert("Number palindrome");
else
  alert("Number not palindrome");
&#13;
&#13;
&#13;