私は、数値がバイナリであるかどうかを評価するための再帰的な解法に取り組んできました。しかし、私のソリューションは常にfalseを返し、私は正しいロジックを得ることができません。私のコードは以下の通りです:2進数を再帰的に見つけるプログラム
public class Convert{
public static boolean isBinaryNumber(int binary){
int temp = 0;
boolean status = false;
if(binary==0 || binary==1) {
status = true;
return status;
}
else {
temp = binary%10;
if(temp == 1 || temp == 0) {
binary = binary/10;
isBinaryNumber(binary);
}
else {
status = false;
return status;
}
}
return status;
}
public static void main(String a[]){
System.out.println("Is 1000111 binary? :"+ isBinaryNumber(1000111));
System.out.println("Is 10300111 binary? :"+ isBinaryNumber(10300111));
}
}
ありがとうございます。あなたはそれがなぜなのかを説明することができますか? – Chognificent
以前は、再帰呼び出しの結果を無視していました。ステータスへの割り当てにより、それが考慮され、返されます。 –
"圧縮された"ソリューションはループしているので正しくありません。 – laune