私はJavaでこの問題を解決し、使用しましInteger.toBinaryString()
たが、そのような関数はc ++では使用できません(私の知る限り)
私はこの関数を作成しました、そしてそれは完全に機能します、しかし私はそれがなぜ機能するのか混乱しています、どんな助けも大いに感謝されます
void decimalToBinary (int number)
{
int remainder;
if (number <= 1)
{
cout << number;
return;
}
remainder = number % 2;
decimalToBinary(number >> 1);
cout << remainder;
}
理解する上での私の主な問題は再帰呼び出しですが、なぜnumber >> 1
そこに必要なのですか?
これは、最初に呼び出されたときに数値を使用し、それが<= 1であるかどうかをチェックするためです。その場合は、数値(0/1)を出力して関数を終了します。それ以外の場合は、数値を取得して、2で割った余りを取得します( 1/0)次に、関数を再度呼び出します。number >> 1
再帰呼び出しではnumber >> 1
、整数ex 1234から終了番号が123になることを意味しますか?