java version "1.8.0_92"
Hiに反復機能を変換します。、再帰
public static String bitConversion(int x) {
List<Integer> binaryList = new ArrayList<Integer>();
while(x > 0) {
binaryList.add(x % 2);
x /= 2;
}
StringBuilder stringBuilder = new StringBuilder();
for(Integer binary : binaryList) {
stringBuilder.append(binary.toString());
}
return stringBuilder.toString();
}
私の試みは、この
public static String bitConversion(int x) {
List<Integer> binaryList = new ArrayList<Integer>();
if(x <= 0) {
StringBuilder stringBuilder = new StringBuilder();
for(Integer binary : binaryList) {
stringBuilder.append(binary.toString());
}
return stringBuilder.toString();
}
else {
binaryList.add(x % 2);
return bitConvert(x/2);
}
}
ことの一つは、私は整数を追加するbinaryListを持っている必要があることです。すべてが終わった最初の状態で、私はそれらをstringbuilderに入れる必要があります。そして、第2の条件では、それらをリストに追加する必要があります。したがって、リストは両方の条件に対してグローバルである必要があります。しかし、関数がそれ自身を呼び出すと、リストは毎回再初期化されます。
この再帰関数を書く最良の方法についてアドバイスできますか?
ご意見ありがとうございました。
いいえ、再帰的なソリューションでは、リストはまったく必要ありません。 – biziclop
反復解法でもListは必要ありません。最初のループでStringBuilderに直接追加するだけです。 –