Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public:
- int findIntegers(int num) {
- int f[32];
- f[0] = 1;
- f[1] = 2;
- for(int i = 2; i < 32; ++i)
- f[i] = f[i-1]+f[i-2];
- int ans = 0, k = 30, pre_bit = 0;
- while(k >= 0) {
- if(num & (1<<k)) {
- ans += f[k];
- if(pre_bit) return ans;
- pre_bit = 1;
- }
- else
- pre_bit = 0;
- --k;
- }
- return ans+1;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement