您好我正在用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");
答案 0 :(得分:1)
为什么不使用字符串本身?使用split
和reverse
var numri = window.prompt("Vendosni numrin");
var items = numri.split( "" );
var isPalindrome = items.join( "" ) === items.reverse().join( "" );
答案 1 :(得分:1)
numri/10
可以(在大多数情况下)返回一个浮点数,因此您需要获取该值的Math.floor()
。
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;
可能有另一种方法可以将字符串与其反转值进行比较
var numri = window.prompt("Vendosni numrin");
if(numri===numri.split("").reverse().join(""))
alert("Number palindrome");
else
alert("Number not palindrome");
&#13;