Problem Statement
- m is greater than or equal to n
- the binary representation of m contains (at least) k consecutive ones
Definition
- Class:
- ConsecutiveOnes
- Method:
- get
- Parameters:
- long, int
- Returns:
- long
- Method signature:
- long get(long n, int k)
- (be sure your method is public)
Constraints
- n will be beween 0 and 2^50 - 1, inclusive.
- k will be between 1 and 50, inclusive.
Examples
1
2
Returns: 3
We want the smallest integer that is at least 1 and contains 2 consecutive ones in binary. Clearly the smallest such integer is 3.
5
2
Returns: 6
The binary representation of the number 5 is 101, which does not contain two consecutive ones. The next integer is 6, which is 110 in binary. As this does contain two consecutive ones, the correct return value is 6.
7
2
Returns: 7
1023
11
Returns: 2047
364269800189924
33
Returns: 364273356242943
437001103351396
10
Returns: 437001103351800
137344374592196
50
Returns: 1125899906842623
963587552675620
49
Returns: 1125899906842622
663926528949124
39
Returns: 664105023176696
64613071430724
36
Returns: 64665027608575
296840970058165
10
Returns: 296840970058751
183881129413730
1
Returns: 183881129413730
693491171995104
50
Returns: 1125899906842623
221937368364725
45
Returns: 246290604621823
149206065203253
49
Returns: 562949953421311
396002446800575
20
Returns: 396002447065087
495163923542986
30
Returns: 495164632072190
38418523090786
9
Returns: 38418523090936
338075251849986
8
Returns: 338075251850236
637736275576482
7
Returns: 637736275576574
937397299302978
6
Returns: 937397299303038
111149826252258
5
Returns: 111149826252272
410810849978754
4
Returns: 410810849978767
710467578737954
3
Returns: 710467578737954
1010128602464450
2
Returns: 1010128602464450
1123079853174293
11
Returns: 1123079853174782
823423124415093
12
Returns: 823423124418559
523766395655893
13
Returns: 523766395658239
224109666896693
14
Returns: 224109666910207
1050348550012821
15
Returns: 1050348550029310
750687526286325
16
Returns: 750687526322168
1125899890065407
25
Returns: 1125899890065407
7176
3
Returns: 7176
0
50
Returns: 1125899906842623
1
50
Returns: 1125899906842623
50
2
Returns: 50
269
2
Returns: 269
56
3
Returns: 56
44
2
Returns: 44
13
2
Returns: 13
2040
2
Returns: 2040
6334
1
Returns: 6334
17583619156951
11
Returns: 17583619156951
61
4
Returns: 61
12
2
Returns: 12
443
4
Returns: 444
0
1
Returns: 1
1113074019211794
1
Returns: 1113074019211794
24
3
Returns: 28
186
4
Returns: 188
950517515131926
4
Returns: 950517515131926
25
50
Returns: 1125899906842623
249
6
Returns: 252
256720229
2
Returns: 256720229
650073
3
Returns: 650073
1125899890065407
32
Returns: 1125899906580480