输出0-n中对应二进制数中1的个数
来源:互联网 发布:pdf页面拼接软件 编辑:程序博客网 时间:2024/05/18 05:10
问题描述
给定一个十进制非负数N,要求出0到N这N+1个数的二进制表示中1的个数
输入描述:每个测试输入包含一个测试用例,即给出自然数N的值,小于1e6
输出描述:在一行内从0到N+1输每没个数的二进制表示中1的个数,左右边界是中括号(【】),中间每个数字用逗号隔开,输出中没有空格,行没有换行符,所有数字均是半角数字
输入:5
输出:[0,1,1,2,1,2]
O(n)解法:
public static void main(String[] args) { int[] src = new int[1000000]; Scanner scan = new Scanner(System.in); int n = scan.nextInt(); scan.close(); src[0] = 0; for (int i = 1; i <= n; ) { int tmp = i; for (int j = 0; j < tmp ; j++) { src[i++] = 1 + src[j]; } } for (int i = 0; i <= n; i++) { if(i==0){ System.out.print("["+src[i]); }else{ System.out.print(","+src[i]); } } System.out.println("]"); }
基本思路:
从二进制数的生成方式考虑这道题,比如说8–1000,接下来的7个数就是8+1,8+2,8+3…,对应二进制数中1的个数就是1(8的那个1)+src[i](i中包含的1的个数),这样就可以一直重复,生成最后结果
0 0
- 输出0-n中对应二进制数中1的个数
- 输出整数对应二进制数中1的个数
- 输出二进制数中1的个数
- 网易游戏笔试题:输入一个数n,返回一个数组,数组中每个元素对应[0,n]每个数的二进制中1的个数
- 算法题:求N!末尾0的个数和求二进制数中1的个数
- 输出某数二进制中1的个数及其逆置数
- 编写程序输出一个二进制数中1的个数
- 输出该数二进制表示中1的个数
- N的二进制中1的个数
- 算法例题-求输入一个整数,输出对应二进制中1的个数。
- 使用do-while编程实现进制转换。输入一个十进制整数n,输出其二进制形式,并统计二进制数中1的个数。
- 用循环的方法求一个十进制数对应二进制中含有1的个数
- 求二进制数中1的个数
- 计算二进制数中1的个数
- 二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 求二进制数中1的个数
- 欢迎使用CSDN-markdown编辑器
- Rails Web App Learning in action (1)--the basic version of students selective courses
- 世界末日,期待春暖花开
- Java使用Tess4J 进行图片文字识别
- QQ音乐/酷狗音乐锁屏控制实现原理
- 输出0-n中对应二进制数中1的个数
- UML建模工具ArgoUML概述
- tc 网络流量控制
- UVa227
- Object c的NSString的使用,创建,拼接和分隔,子string,substring
- Unable to set localhost. This prevents creation of a GUID. Cause was: cloud: cloud java.net.UnknownH
- 进程与线程的关系和区别 CPU调度简介
- IDEA使用maven创建web项目卡住解决办法
- Tomcat中catalina.bat详解