- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我被梁 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/
我被梁 Java 简介书中的一个问题所困扰 - 问题如下: “十六枚硬币被放置在一个 4×4 矩阵中,其中一些面朝上,一些面朝下。您可以使用值为 0(头)和 1(尾)的 4×4 矩阵来表示硬币的状态。
已错过窗口和 .withAllowedLateness 期间的延迟数据将从管道中删除,如记录 here 我对这种行为有几个问题: 如何处理从管道中丢弃的延迟数据?我们可以添加默认行为吗?说所有迟到的数
在阅读有关使用 Java 处理 Apache Beam 中的流媒体元素时,我遇到了 DoFn然后穿过SimpleFunction . 这两个看起来都与我相似,我发现很难理解其中的区别。 有人可以用外行
我正在运行 Apache Beam 管道,从 Google Cloud Storage 读取文本文件,对这些文件执行一些解析并将解析后的数据写入 Bigquery。 为了保持简短,这里忽略解析和 go
我们的核心目标是: 使用图像处理来读取/扫描建筑平面图图像(从 CAD 软件导出) 使用图像处理来读取/扫描建筑平面图图像(从 CAD 软件导出)提取各种直线和曲线,将它们分组为结构实体,如墙、柱、梁
我试图以 10 秒的频率从 google cloud pubsub 流中窗口数据,但是出现此错误: java.lang.IllegalArgumentException: Cannot output
我是一名优秀的程序员,十分优秀!