ここで見つけた小さなパズルを試していました
なぜ私の答えが間違っているのだろうと思っていましたが、元の仕様は
あなたの仕事は、2 進数で数値を逆にするプログラムを書くことです。たとえば、13 の 2 進数表現は 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));
}
}
それは上記のタスクを実行していますが、私の提出では間違っています。なぜそれが間違っていると考えられているのだろうか?私は何か重要なことを逃しましたか?