整数の2進表現でOneの数を数えようとしています。これを再帰的に行う必要があります。私のロジックは正しいと思いますが、スタックオーバーフローが発生し続けます。2日目のトラブルシューティング中です。これが私のコードです:
static int CountRecursive(int n) {
int sum = 0;
if (n >= 0) {
if (n%2 == 1) {
sum ++;
} sum += CountRecursive(n/2);
} return sum;
}
私の論理はこの情報に基づいています。「10進数から2進数に変換するための標準的なメカニズムは、10進数を2で繰り返し除算し、各除算で余り(0または1)を出力することです。」