当前位置: 首页 > 知识库问答 >
问题:

反转整数的最后一次迭代的随机输出[重复]

林和畅
2023-03-14

我正在尝试反转一个int,下面是我的代码

int num = 1534236469,temp=num;

while (temp != 0) {
    digit = temp % 10;
    temp = temp / 10;
    sum = ((sum * 10) + digit);
}

在最后的第二次迭代中,我得到了964632435,正如预期的那样,但在最后一次迭代中,我得到了1056389759。。

有人能帮我理解这里发生了什么吗?

共有1个答案

胡璞瑜
2023-03-14

这绝对是int溢出。

int num = 1534236469,temp=num;
int sum = 0;
while (temp != 0) {
    int digit = temp % 10;
    temp = temp / 10;
    sum = ((sum * 10) + digit);
    System.out.printf("%,14d  %,14d%n",sum, Integer.MAX_VALUE);
}

印刷品

             9   2,147,483,647
            96   2,147,483,647
           964   2,147,483,647
         9,646   2,147,483,647
        96,463   2,147,483,647
       964,632   2,147,483,647
     9,646,324   2,147,483,647
    96,463,243   2,147,483,647
   964,632,435   2,147,483,647
 1,056,389,759   2,147,483,647

将左侧的整数最大值与右侧的整数最大值进行比较。当您计算最后一个值并将964632435乘以10时会发生什么情况?

 类似资料:
  • 如果格式不正确,请原谅,这是我的第一篇帖子。我想看看是否以前发现过这个问题,但我找不到任何人有与我相同的问题。 我试图学习Java,但我无法弄清楚为什么我的for循环没有输出最后一次迭代。我正在完成codeabbey的练习,并相对轻松地完成了前两个。然而,在第三个和第四个问题上,我无法在最后一次迭代中输出我的for循环。 我开始在谷歌上搜索,并想将我的答案与其他人的答案进行比较。当我的代码与我找到

  • 问题内容: 当您要依次遍历数字列表时,您将编写: 但是,如果要随机遍历范围(0..999)的数字列表怎么办?需要(在每个迭代中)随机选择在任何先前迭代中未选择的数字,并且需要对范围(0..999)内的所有数字进行迭代。 你知道该怎么做(聪明)吗? 问题答案: 您可以习惯随机播放列表: 顺便说一句,在许多情况下,您将在其他编程语言中使用整数范围内的循环,则可以直接描述要在Python中迭代的“事物”

  • 在解决反转链表的前K个元素的问题时,我编写了下面的递归代码,但最后一次迭代执行了两次,即对于K=1,函数调用reverseNode()发生了两次。任何人都不能解释为什么会这样。如果我做错了什么,请纠正我。 工作代码为我的逻辑它是工作的预期。但当我尝试在“if”条件中使用变量“k”而不是“presentCounter”时,它就错了。谁能告诉我原因吗。

  • 我试图创建一个没有重复的随机数组。 任务是从用户那里获取一个整数数组和最大值,用0到最大值之间的随机数填充数组,并显示没有重复的随机数组,不使用任何其他类,除了随机和扫描仪。 这是一个示例输出: 请输入数组的大小:10 请输入最大值:50 [39,2,17,49,12,19,40,31,42,15] 我需要帮助删除重复的内容。我不确定我所做的是否正确,我是一个初学者,但这是我目前所做的。非常感谢帮

  • 本文向大家介绍C++生成不重复的随机整数,包括了C++生成不重复的随机整数的使用技巧和注意事项,需要的朋友参考一下 C++生成不重复的随机数,供大家参考,具体内容如下 给定正整数的范围[n,m],生成k个不重复的随机数字。 IDE是vs013。 运行结果: 这个程序可以用于班级内部按照学号进行随机抽签。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 新手,我正在制作一个程序,生成一个带有适当后缀的随机序数(即1、2、3…)我无法获得randomInt();工作。我不断收到以下错误: 我在Google和Stack Overflow上搜索了一个无济于事的解决方案。我甚至从互联网上复制和编译了其他使用随机Int()的程序;它们都产生了同样的错误。你能告诉我我做错了什么吗?这是我的程序代码: 欢迎对我的节目提出批评。谢谢