是什么导致 Java(冰雹序列)在我的程序中崩溃

2024-05-22

我制作了一个执行(通常称为)冰雹序列的程序,该程序基本上执行以下操作:

创建一个int(值)并为其分配一个值。

如果 int 是偶数,则将其除以二。

如果 int 为奇数,则将其乘以三并加一。继续这个过程,直到 n 等于 1。

它似乎适用于大多数数字,但这个数字 99888769,应用程序挂在负整数上。为什么会这样?他们说还没人能够证明它停止了,我没想到我已经解决了这个问题。但知道为什么我的应用程序停止会很有趣。 -

    private void hailStoneSequence(){
    int value = 99888769;
    int i = 0;
    boolean trueOrFalse = isOddOrEven (value);
    while (value != 1){
        while (trueOrFalse == true && value != 1){
            i++;
            int previousValue = value;
            value = value / 2;
            println( previousValue +" is even, so I take half: "+value);
            trueOrFalse = isOddOrEven (value); // returning true or false, and inserting the newly divided number. So that it breaks loop when nescesary.
        }
            while (trueOrFalse == false && value != 1){
                i++;
                int previousValue = value;
                value = (value * 3) + 1;
                println (previousValue +" is odd, so I make 3n+1: "+value); 
                trueOrFalse = isOddOrEven (value);  
            }
                }       
    println ("\n\nThe process took "+i+" to reach "+value);
}

private boolean isOddOrEven(int value){
    /*
     * Takes an value and returns true, if that number is even.
     * Else it returns false.
     */
    if (value % 2 != 0){
    return false;
    }else{
        return true;
    }
}

}


当你不断增加ints,它们最终会(看起来像是令人吃惊的行为)变成负数,因为你超过了 int 类型的最大值(2^31-1),即你最终改变了(int 的二进制表示的)位用于存储数字的符号。使用long反而。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是什么导致 Java(冰雹序列)在我的程序中崩溃 的相关文章

  • 透明平开窗

    我有一点JWindow上面有一个标志 用户可以将东西拖到上面 我主要在 OS X 上开发我的应用程序 为了获得我使用的透明窗口 setBackground new Color 0 0 0 0 在 Mac 上 这工作得很好 但在 Window
  • 如何让Spring RabbitMQ创建一个新的队列?

    根据我对rabbit mq的 有限 经验 如果您为尚不存在的队列创建新的侦听器 则会自动创建该队列 我正在尝试将 Spring AMQP 项目与rabbit mq 一起使用来设置侦听器 但出现错误 这是我的 xml 配置
  • JavaFX Platform.runLater 的使用以及从不同线程访问 UI

    我有几个问题Platform runLater 我有一个 JavaFX 应用程序类 在这个类中 我运行一个线程 该线程从网络套接字读取数据 现在当我创建一个新的Stage在线程内部 系统抛出异常 JavaFX 事件调度程序线程和我的网络读取
  • 如何测试调用父类的受保护(不需要的)方法的方法?

    我陷入了一个非常奇怪的情况 我有一些需要测试的特定代码 这里是 public class A The real method of real class is so big that I just don t want to test it
  • @OneToMany 与 @JoinTable 错误

    我试图理解 OneToMany with JoinTable 对于这样的场景 我正在使用 JPA 2 1 Hibernate 5 0 4 和 Oracle 11 XE 当我打电话时userDao save user 下面的代码 我有 jav
  • 在 TestNG 中运行多个类

    我正在尝试自动化一个场景 其中我想登录一次应用程序 然后进行操作而无需再次重新登录 考虑一下 我有在特定类的 BeforeSuite 方法中登录应用程序的代码 public class TestNGClass1 public static
  • 要打乱的键值(整数、字符串)列表的最佳结构

    我需要在 Java 中实现一个结构 它是一个键值列表 类型为整数 字符串 并且我想对其进行洗牌 基本上 我想做类似的事情 public LinkedHashMap
  • 哈希码是否用于加速集合中的对象查找?

    IIUC 相同类型的两个不同对象可以存储在 HashSet 中 即使两个对象在以下情况下返回相同的值 hashCode 叫做 例如根据本文 https eclipsesource com blogs 2012 09 04 the 3 thi
  • 从关卡堆栈中获取相对比例的数学

    为这个可怕的标题道歉 我花了 10 分钟试图用一句话来解释这一点 但失败了 虽然提示这个问题的应用程序是用Java Android 编写的 但我认为它非常通用并且适用于任何语言 欢迎使用伪代码 或简单的英语 回复 我不确定是否应该标记所有通
  • 不要模拟值对象:过于通用的规则,没有解释

    以下是 Mockito 单元测试框架的引用 不要模拟值对象 为什么有人会想要这样做呢 因为实例化对象太痛苦了 gt 无效 原因 如果创造新的装置太困难 那就是一个迹象 代码可能需要一些认真的重构 另一种方法是创建 价值对象的构建者 有一些工
  • 如何通过子 POJO 的属性过滤复合 ManyToMany POJO?

    我有两个像这样的房间实体 Entity public class Teacher implements Serializable PrimaryKey autoGenerate true public int id ColumnInfo n
  • 抽象类或接口。哪种方式是正确的?

    有两种方法可以选择抽象类或接口 微软解决方案和Oracle解决方案 微软 设计指南 请使用抽象 在 Visual Basic 中为 MustInherit 类而不是接口来将协定与实现分离 http msdn microsoft com en
  • 我们可以使用 for-each 循环来迭代 Iterator 类型的对象吗? [复制]

    这个问题在这里已经有答案了 如果我们执行以下操作 我们会收到错误 class FGH public static Iterator reverse List list Collections reverse list return list
  • 在服务器内部调用 Web 服务

    我有一个网络服务 getEmployee 当传递 id 时 它会获取单个员工的员工详细信息 同一服务器上的另一个 Web 服务 getEmployeeList 当传递一个部门时 它会获取整个员工列表 这将获取部门的 ID 然后调用 getE
  • 我们可以有虚假中断吗?

    我正在创建一个任务轮询器 每分钟都会查找任务 它看起来像这样 public class Poller private final ExecutorService e Executors newSingleThreadExecutor pub
  • H2 - (相当)长的 INSERT 失败,错误 42000

    H2 内存中 插入 错误 42000 尝试过版本 1 4 196 1 4 197 1 4 199 我还尝试在 H2 服务器 本地 上执行 INSERT 也失败 给出错误的行 抱歉 但出于安全原因 我无法生成更多 INSERT INTO tb
  • 使用 Runtime.getRuntime().exec() 进行重定向不起作用

    我需要从程序执行命令 命令行是可以的 我在终端试了一下 但是在程序中不行 我从我的代码中添加一个副本 File dir new File videos String children dir list if children null Ei
  • H2 用户定义的聚合函数 ListAgg 不能在第一个参数上使用 DISTINCT 或 TRIM()

    所以我有一个 DB2 生产数据库 我需要在其中使用可用的函数 ListAgg 我希望使用 H2 的单元测试能够正确测试此功能 不幸的是H2不直接支持ListAgg 但是 我可以创建一个用户定义的聚合函数 import java sql Co
  • Integer.parseInt 引发的 NumberFormatException

    嘿 我在学校上编码课 但老师没有很好地解释 所以我们必须在网上查找我所做的信息 但我无法找到代码中的错误 你能帮我吗 char end s do System out println Tipo de boleto char boleto c
  • matlab中求和函数句柄

    Hi我试图对两个函数句柄求和 但它不起作用 例如 y1 x x x y2 x x x 3 x y3 y1 y2 我收到的错误是 对于 function handle 类型的输入参数 未定义函数或方法 plus 这只是一个小例子 实际上我实际

随机推荐

  • C++ GUI 桌面 Windows 应用程序的测试自动化工具/库/框架

    不幸的是 我有一个在 Windows 上运行的 GUI 桌面应用程序 并使用 Borland C 编译器进行编译 我知道这是一项非常古老的技术 但这就是生活 我工作的公司有很多免费的 QTP 许可证 但说实话 我不喜欢这个工具 我想用一些开
  • 在 Google App Engine 上连接 Mongoose

    我已在 Google App Engine 上成功部署了自定义 Node js 应用程序 但是 我在启动应用程序时遇到问题 因为猫鼬在尝试连接时超时 令人沮丧的是 猫鼬在我的本地计算机上以完全相同的参数连接得很好 我的 MongoDb UR
  • “gulp”不被识别为内部或外部命令

    我正在尝试使用Gulp http gulpjs com and Node Js https nodejs org en 流式传输我的生产过程中缩小和连接 CSS JS 文件的过程 这是我所做的 我安装了Node Js https nodej
  • 标记上存在语法错误,需要 AnnotationName - 查询错误

    我收到了令牌语法错误 AnnotationName 预期出现在以下行 query findInBackground new FindCallback
  • 使用 scipy 的solve_bvp 求解 BVP

    我有一个由 3 个微分方程组成的系统 我相信从代码中可以明显看出 具有 3 个边界条件 我设法在 MATLAB 中用一个循环来解决这个问题 一点一点地改变最初的猜测 而不会在程序即将返回错误时终止程序 然而 关于scipy s solve
  • ASP.Net MVC 3 JSON 模型绑定和服务器端模型验证与客户端验证混合

    我一直在使用新的 MVC3 Json 模型绑定 它非常好 目前 我可以将 JSON 发布到控制器并绑定它 模型验证也进展顺利 但如果模型无效怎么办 我想返回 JSON 并让客户端通知用户 就像在 mvc 中执行正常客户端验证的方式一样 有谁
  • C# 从字符串中删除制表符,制表符识别

    我想从字符串中删除制表符 我正在使用这段代码 但它不起作用 string strWithTabs here is a string with a tab tab character char tab u0009 String line st
  • 使用 SciKit-learn 和大型数据集进行文本分类

    首先 我昨天开始学习Python 我正在尝试使用 SciKit 和大型数据集 250 000 条推文 进行文本分类 对于该算法 每条推文都将表示为 4000 x 1 向量 因此这意味着输入为 250 000 行和 4000 列 当我尝试在
  • 使用 C# 查找数据表中的最小值和最大值[重复]

    这个问题在这里已经有答案了 可能的重复 如何选择数据表中列的最小值和最大值 https stackoverflow com questions 2442525 how to select min and max values of a co
  • Windows CE 与嵌入式 Linux [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 现在我确信我们都清楚 Linux 与 Windows 桌面的相对优点 然而 我对嵌入式开发世界的了解却少得多 我主要对行业解决方案感兴
  • 优化大数据读写(C++)

    我正在寻求优化 C 模拟应用程序的读取 写入大量数据 称为 映射 的数据本质上由整数 双精度数 浮点数和单个枚举组成 该地图数据的大部分大小是固定的 但一小部分可能会变化 从几KB到几KB 大小 几个这样的映射 通常是数百万个 在应用程序启
  • 如何使 PowerShell 函数调用超时

    我编写了一个小 powershell 函数 用于对远程服务器执行 Get EventLog 在某些服务器上 这似乎只是挂起并且永远不会超时 我可以使 powershell 函数调用超时吗 我知道如何针对不同的过程 https stackov
  • 如何让 Visual Studio 连接到 Windows 应用商店?

    我尝试在 Visual Studio 2015 中创建应用程序包以上传到 Windows 应用商店 但每次尝试连接到应用商店都会导致错误 An unexpected network error has occurred The app li
  • C++11 是否允许在标识符中使用美元符号?

    C 03 中的标识符中允许使用美元符号吗 https stackoverflow com questions 936744 are dollar signs allowed in identifiers in c03涵盖了 C 03 中不允
  • 如何使用 POCO 发送 websocket PONG 响应

    我正在尝试使用 POCO 1 7 5 设置 websocket 服务器 POCO的样本发现here https github com pocoproject poco blob develop Net samples WebSocketSe
  • Python 3 print() 到变量

    在Python 3中 您可以使用 print 函数将数据写入文件 例如print my data file my open file 这很好 而且非常酷 但你可以吗print到 字符串 变量 如果是这样 怎么办 在我的特定用例中 我试图避免
  • 如何像web.config一样转换log4net配置?

    从我的 csproj 文件
  • 无法在 Unix shell 脚本上操作日期(日期:非法选项 -- d)

    我需要将当前日期添加 10 天并将其分配给变量 但我收到错误 date illegal option d 这是我尝试过的 gt NEW expration DATE date d 10 days Result date illegal op
  • 计算字符串中每个字符出现的次数

    我想使用 JavaScript 计算给定字符串中每个字符的出现次数 例如 var str I want to count the number of occurrences of each char in this string 输出应该是
  • 是什么导致 Java(冰雹序列)在我的程序中崩溃

    我制作了一个执行 通常称为 冰雹序列的程序 该程序基本上执行以下操作 创建一个int 值 并为其分配一个值 如果 int 是偶数 则将其除以二 如果 int 为奇数 则将其乘以三并加一 继续这个过程 直到 n 等于 1 它似乎适用于大多数数