京东幸运数。超时,求解更好算法。
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int group=scan.nextInt();
int count=0;
for(int i=0;i<group;i++)
{
int number=scan.nextInt();
for(int j=1;j<=number;j++)
if(CountBitSum(j)== CountBinarySum(j))
{
count++;
}
System.out.println(count);
count=0;
}
}
public static int CountBitSum(int num)
{
int counter = 0;
while(num>0)
{
counter+=num%10;
num=num/10;
}
return counter;
}
public static int CountBinarySum(int num) {
int counter = 0;
while (num > 0) {
num = num & (num - 1);
counter++;
}
return counter;
}
}