Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <algorithm>
- vector<int> hit_the_number ( int A ) {
- vector<int> v;
- v.push_back(A);
- while (A > 1)
- {
- if (A % 2) // Odd number
- {
- A >>= 1;
- v.push_back(A+1);
- v.push_back(A);
- }
- else if (!(A & (A-1))) // Power of two
- {
- break;
- }
- else // Even number
- {
- A >>= 1;
- v.push_back(A);
- }
- }
- // Here A is always a power of two.
- for (;;)
- {
- A >>= 1;
- if (!A)
- break;
- v.push_back(A);
- }
- reverse(v.begin(), v.end());
- return v;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement