概述
如果一个数n是偶数那他一定和n>>1中1的个数一样,如果n是奇数,他一定比n>>1多一个数,具体可带几个数去验证比如8 :1000 右移一位100是4
7:111 右移一位11是3
主函数:
public static void main(String[] args) {
int n;
Scanner scanner = new Scanner(System.in);
n = scanner.nextInt();
// System.out.println(n);
int[] res = new int[n + 1];
res = countBits(n);
for (int i = 0; i <= n; i++) {
System.out.print(res[i] + " ");
}
}
函数:
public static int[] countBits(int n) {
int[] aa = new int[n + 1];
for (int i = 0; i <= n; i++) {
aa[i] = aa[i >> 1] + i % 2;
}
return aa;
}
最后
以上就是怡然哈密瓜为你收集整理的JAVA-剑指offer003 前n个数二进制中1的个数的全部内容,希望文章能够帮你解决JAVA-剑指offer003 前n个数二进制中1的个数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复