为了账号安全,请及时绑定邮箱和手机立即绑定

Java 回文与 JavaScript

Java 回文与 JavaScript

暮色呼如 2023-11-02 17:29:35
为什么这在 Java 中可行,但在 JavaScript 中不行?我尝试在 Java 中使用它,它工作得很好,但我不明白为什么它只在 JavaScript 中打印“不是回文”?谢谢 var n = 121; var sum = 0, r; var temp = n;     while(n>0)   {        r = n % 10;       sum = (sum*10)+r;        n = n/10;       }      if(temp==sum)        console.log("It is a Palindrome number.");  else      console.log("Not a palindrome");   
查看完整描述

2 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

当您需要向下除法(也称为整数除法)时,您正在使用浮点除法,因为 JS 数字始终是浮点数。要修复此问题,请在除法之后使用 Math.floor:


var n = 121;

var sum = 0

var r;

var temp = n;    

while(n > 0){    

    r = n % 10;   

    sum = (sum * 10) + r;    

    n = Math.floor(n / 10);    

}

if(temp == sum){

    console.log("It is a palindrome number.");

}else{

    console.log("Not a palindrome");

}


查看完整回答
反对 回复 2023-11-02
?
月关宝盒

TA贡献1772条经验 获得超5个赞

该代码在 java 和 javascript 中的结果不完全相同的原因是数据类型的差异。

您(很可能)在 java 中声明变量,如下所示:

int n = 121;    // this is strictly an integer

而当你在 javascript 中声明时:

var n = 121;    // this is interpreted according to the calculation where used

所以在java中,n/10会给你一个整数,一个四舍五入的整数答案。

但在 javascript 中,n/10 可能会给你一个十进制值。这就是你的程序失败的地方。

解决方案:在 javascript 中 使用适当的Math.ceil()floor()函数,使其四舍五入到最接近的整数值。我会让您弄清楚在这种情况下您需要哪一个。


查看完整回答
反对 回复 2023-11-02
  • 2 回答
  • 0 关注
  • 62 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信