我正在尝试一个我在这里找到的小谜题
我想知道我的答案为什么不正确,您会看到原始规范是
你的任务是编写一个程序来反转二进制数。例如,13 的二进制表示是 1101,将其反转得到 1011,它对应于数字 11。
所以这是我的代码..
import java.util.Scanner;
public class ReverseBinary {
public String reversedIntToBinary(int val) {
int value = val;
StringBuilder bldr = new StringBuilder();
while (value != 0) {
int remainder = value % 2;
value = value / 2;
bldr.append(remainder);
}
return bldr.toString();
}
public int toDecimal(String bin) {
char[] binString = bin.toCharArray();
int starting = 0;
for (int i = 0; i < binString.length; i++) {
int tempoVal = starting * 2
+ Character.getNumericValue(binString[i]);
starting = tempoVal;
}
return starting;
}
public int reversedBinary(int val){
String bin =reversedIntToBinary(val);
int result = toDecimal(bin);
return result;
}
public static void main(String[] args) {
ReverseBinary rvb = new ReverseBinary();
Scanner input = new Scanner( System.in);
System.out.println("Enter A Number: ");
int num = input.nextInt();
System.out.println(rvb.reversedBinary(num));
}
}
它正在执行上述任务,但在我提交时它是错误的。我想知道为什么它被认为是错误的?我错过了一些重要的事情吗?