java에서 2진법 표시 중 1의 개수를 계산합니다
/*use the recursive algorithme to calculate
* the number of "1" in the binary expression
* of an Integer N.
* Note:if N is an odd, then
* the result is the result of N/2 plus 1.
* And the program use the bit operation to
* improve efficency ,though it's seemingly
* not necessary ,but the idea I think is good.
* The program is writed by Zewang Zhang ,at
* 2015-5-4,in SYSU dorms.
*/
public class CalculateNumberInBinaryExpression {
//Main method.
public static void main(String[] args) {
//For example ,make N equals 13 ,the result shows 3
System.out.println(numOfEven(13));
//For example ,make N equals 128 ,the result shows 1
System.out.println(numOfEven(128));
}
//The static method of numOfEven is the recursive method.
public static int numOfEven(int x) {
//The base of recursive.
if(x==0) {
return 0;
}
//If x is an odd.
else if(x%2!=0) {
return numOfEven(x>>1)+1;
}
//If x is an even except 0.
else {
while(x%2==0) {
x=(x>>1);
}
return numOfEven(x);
}
}
}
가장 간단하지만 테스트하지 않았습니다:)
public int a(int i){
if(i==0||i==1) return i;
return i%2+a(i/2);
}
위에서 말한 것이 바로 본문의 전체 내용입니다. 여러분이 좋아하시기 바랍니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.