26
整数のデジタル硬度
整数のデジタル硬さを見つけるには、そのバイナリ表現を取得し、先頭と末尾1がで始まるか終わるまで削除できる回数をカウントし0ます。削除されたビットの総数は、デジタル硬度です。 これは非常に冗長な説明です。実際の例で説明しましょう。 この例では、番号3167を使用します。バイナリでは、これは次のとおりです。 110001011111 (バイナリへの変換中に、先行ゼロを必ず削除する必要があることに注意してください) で始まったり終わったりしない0ため、1ペアのビットを削除します。 1 1000101111 1 そしてもう一つ: 11 00010111 11 しかし、最初は0であるため、もう1ペアを削除することはできません。合計で4ビットが削除されたため、4は3167のデジタル硬度です。 ただし、正のnに対して2 n -1(つまり、バイナリ表現のみを含む)として記述できる数値の場合、0には到達しないため、すべてのビットを削除できます。これは、硬度が単に整数のビット長であることを意味します。1 チャレンジ あなたの仕事は、負でない整数を与えられてn >= 0そのデジタル硬度を決定するプログラムまたは関数を書くことです。 I / Oを実行する完全なプログラム、または結果を返す関数を送信できます。送信はn、言語の標準整数範囲内の値に対して機能する必要があります。 テストケース これらのいずれかが正しくない場合、または追加するエッジケースを提案する場合は、私に通知してください。 0 -> 0 1 -> 1 8 -> 0 23 -> 2 31 -> 5 103 -> 4 127 -> 7 1877 -> 2 …