gpt4 book ai didi

java - 梁 - 正面与反面的游戏

转载 作者:太空宇宙 更新时间:2023-11-04 07:58:59 26 4
gpt4 key购买 nike

我被梁 Java 简介书中的一个问题所困扰 - 问题如下:

“十六枚硬币被放置在一个 4×4 矩阵中,其中一些面朝上,一些面朝下。您可以使用值为 0(头)和 1(尾)的 4×4 矩阵来表示硬币的状态。以下是一些示例:

0000
0100
0000
0010

每个状态也可以使用二进制数(上述的串联)来表示。编写一个程序,提示用户输入 0 到 65,536 之间的数字并显示相应的矩阵 - 7 的值将给出 00000111。

我的问题是您如何验证 7 的情况是否如此?我什至不确定如何开始对这样的方法进行原型(prototype)设计 - 也许 int x = (int)Math.rand(1) 并分配给每个行/列?

也许有人可以给我一些关于从哪里开始的提示?

最佳答案

问题本质上是将 [0, 65536] 范围内的整数转换为其二进制表示形式。这可以通过 Integer.toBinaryString 来完成。例如,

Integer.toBinaryString(7);

将产生字符串111。现在,我们希望字符串的总长度为16,因此需要在左侧补上0,得到0000000000000111。我们可以做这样的事情:

String.format("%16s", Integer.toBinaryString(7)).replace(' ', '0');

结果是字符串0000000000000111

一旦你有了这个,你可以简单地将它复制到 4x4 int (或 boolean )数组中。或者,您可以立即打印数据,

String bin = String.format("%16s", Integer.toBinaryString(7)).replace(' ', '0');

for (int i = 0 ; i < 4 ; i++)
System.out.println(bin.substring(4 * i, 4 * (i + 1)));

输出:

0000   
0000
0000
0111

当然,您可以将 7 替换为您从用户那里读取的任何整数,但想法是相同的。

关于java - 梁 - 正面与反面的游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13145108/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com