【发布时间】:2018-08-01 08:02:44
【问题描述】:
所以我正在编写这个程序来模拟 H 面和 T 面的硬币翻转,现在是时候创建我的方法了。该程序背后的主要思想是用户应该能够输入任何数字 b/w 1 和 511。输入数字后,我的方法应该将他们的数字转换为二进制,0 表示正面,1 表示反面。
所以如果用户输入 3,我的方法应该转换为 000000011,然后我想将其转换为打印一个如下所示的矩阵:
HHH
HHH
HTT
到目前为止,这是我的代码,但是我的方法 (binaryConverter) 是空的。我真的不知道从哪里开始。
import java.util.Scanner;
public class Problem8_11 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter one number between 0 and 511: ");
int number = input.nextInt();
String binaryValue = binaryConverter(number);
int[][] matrix = new int[3][3];
int binary = 0;
for (int i = 0; i < matrix.length; i++) {
for (int x = 0; x < matrix[i].length; x++) {
int HeadOrTails = (binaryValue.charAt(binary++) == '0') ? 0 : 1;
matrix[x][i] = HeadOrTails;
}
}
for (int i = 0; i < matrix.length; i++) {
for (int x = 0; x < matrix[i].length; x++) {
char HorT = (matrix[i][x] == 0) ? 'H' : 'T';
System.out.print(HorT + "");
}
System.out.println(" ");
}
}
【问题讨论】:
-
您似乎希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的编码人员编写代码,但他们通常只有在发布者已经尝试自己解决问题时才会提供帮助。展示这项工作的一个好方法是包含您迄今为止编写的代码、示例输入(如果有的话)、预期输出以及您实际获得的输出(控制台输出、回溯等)。您提供的详细信息越多,您可能收到的答案就越多。检查FAQ 和How to Ask。
-
为什么这个标签是
javascript? -
我不知道如何开始,这就是我发帖的原因。我真的不知道从哪里开始。你不必为我写,我也没有要求任何人为我写。我要求建议,从哪里开始。感谢您的尝试。
-
您不需要使用字符串,只需为
0/1或H/T测试号码的底部位(x & 1 != 0)并使用右移 (x = x >> 1) 移动到下一位。
标签: java