説明
整数(32ビットの符号付き整数)が与えられると、それは4のパワーであるかどうかを決定するために関数を書きます。
例1:
入力:16
出力:真の
例2:
入力:5
出力:偽
高度:
あなたが再帰ループを使用することはできませんか、この質問それを完了するために?
解決
数が32 4への電源である場合にのみ、奇数ビット1つのみを有し、偶数ビットは0です。条件を決定します。
計算結果をどう0xaaaaaaaa 1. 0です。(= 1010 A)
2. NUM&(NUM - 1)== 0、1記載のつのみ
コード
パブリック ブール isPowerOfFour(int型NUM){ 場合(NUM == 0 ){ 戻り 偽。 } もし、(((NUM&0xaaaaaaaa)== 0)&&(NUM&(NUM - 1))== 0 ){ 戻り 真。 } 他{ 戻り 偽。 } }
パブリック ブール isPowerOfFour(INT NUM){ もし、(((NUM&0xaaaaaaaa)== 0)&&(Integer.bitCount(NUM)== 1 )){ 戻り 真。 } 他{ 戻り 偽。 } }