java - 组合锁密码

标签 java bluej

我正在尝试解决旧的密码锁程序。问题如下。我已经编写了一些代码,但到目前为止它只打印一堆可能的组合,这些组合始终包含第一个数字为 36。说实话,我非常困惑如何将其到达需要的位置。

“想象一下,您需要打开一个标准密码拨号锁,但不知道密码,也没有一把断线钳。在 BlueJ 中编写一个 Java 程序,使用打印所有可能组合的方法,以便您可以打印将它们写在一张纸上,并在尝试时核对每一个。假设每个表盘上的数字范围从零到三十六,并且需要连续三个数字才能打开锁。假设锁不是很好1 以及每个数字中距离正确数字不超过 2 的任何数字也可以。换句话说,如果组合是 17-6-32,则 18-5-31、19-4-32、15-8 -33 和许多其他组合也将打开锁。编写另一个方法,打印出您需要尝试保证打开锁的最小组合列表。”

     /**
     * A method that prints all possible combinations of the lock.
     */
    public void combination(int combo)
    {
        int a;
        int b;
        int c;
        a = 0;
        while (a <= 36)
                {b = 0;
                while (b <= 36)
                    {c = 0;
                    while (c <= 36)
                    {
                        System.out.println(a + " " + b + " " + c);
                        c = c + 1;
                    }
                    b = b + 1;
                }
                a = a + 1;
                }
    }
}

最佳答案

你的程序运行良好。我的猜测是 BlueJ 限制了控制台大小。转到选项并启用无限缓冲。这应该可以让您看到所有可能的组合。如果您调试它并逐行单步执行它,您会看到所有组合都被输出,但由于显示行数的限制,第一个数字似乎始终是 36,因为您只能得到最后这么多行。

旁注:您从不使用传递给combinations() 的int 组合参数,所以如果我是您,我会删除它。

关于java - 组合锁密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49955152/

相关文章:

java - 当我的程序在BlueJ中的文本 'crashing'之后遇到 "%.2f"时,它是 "Gross Pay : "

java - 我需要帮助让程序以特定格式输出文本文件。

java - 我应该如何克隆嵌套 ArrayList?

java - 简单的 Java 到 XML 示例

java - 实现接口(interface)时会不会出现 "not override a concrete method ..."编译时错误?

java.net.SocketException : Socket is closed

java - BlueJ Java MySQL CRUD 应用程序 | BlueJ Java MySQL CRUD 应用程序线程中出现异常 "AWT-EventQueue-0"java.lang.NullPointerException

java - 根据值对 Map<Key,Value> 进行降序排序

java - Okhttp Dispatcher 线程中出现异常

私有(private)方法的 JAVADOC (BlueJ)