给定非负整数
由题目中所给出的要求可知,不能使用普通思路,即对
十进制数 | 二进制数 | 1的位数 |
---|---|---|
0 | 0 | 0 |
1 | 1 | 1 |
2 | 10 | 1 |
3 | 11 | 2 |
4 | 100 | 1 |
5 | 101 | 2 |
6 | 110 | 2 |
7 | 111 | 3 |
8 | 1000 | 1 |
9 | 1001 | 2 |
… | … | … |
仔细观察上表可以发现,整数
本题中最重要的是能够发现数字二进制串中1位数之间的规律,之后使用递归思路进行解题。 在递归编程中,应仔细分析递归基与递归步,确保每一步均可减小问题规模,并且最终使用递归基进行解决。
新闻热点
疑难解答