题目来源于力扣——剑指 Offer II 003. 前 n 个数字二进制中 1 的个数 - 力扣(LeetCode) (leetcode-cn.com)
给定一个非负整数 n ,请计算 0 到 n 之间的每个数字的二进制表示中 1 的个数,并输出一个数组。
示例 1:
输入: n = 2
输出: [0,1,1]
解释:
0 --> 0
1 --> 1
2 --> 10
示例 2:输入: n = 5
输出: [0,1,1,2,1,2]
解释:
0 --> 0
1 --> 1
2 --> 10
3 --> 11
4 --> 100
5 --> 101
第一步我们要先求出0到n的每个数的二进制位有多少个一
如果大家不知道怎么求
可以参考一下我主页的方法:求一个十进制数的32位二进制表示1的个数_m0_64247174的博客-CSDN博客
然后就可以很好地解决这个问题了
#include<stdio