Problem Statement
You are given two
- Let A be the largest integer whose binary representation consists of exactly ones 1s and zeroes 0s.
- Let B be the smallest integer whose binary representation consists of exactly ones 1s and zeroes 0s.
- Let C = A*B.
Compute and return the number of 1s in the binary representation of C.
Definition
- Class:
- PermutationAndMultiplication
- Method:
- multiplyAndCount
- Parameters:
- int, int
- Returns:
- int
- Method signature:
- int multiplyAndCount(int ones, int zeroes)
- (be sure your method is public)
Notes
- The binary representations of A and B are not allowed to have leading zeroes.
Constraints
- ones will be between 1 and 200,000, inclusive
- zeroes will be between 0 and 200,000, inclusive
Examples
26
32
Returns: 52
35
5
Returns: 35
20
20
Returns: 40
5
8
Returns: 10
9
21
Returns: 18
36
13
Returns: 36
16
10
Returns: 16
37
11
Returns: 37
1
19
Returns: 1
36
31
Returns: 36
31
15
Returns: 31
38
7
Returns: 38
12
23
Returns: 24
16
8
Returns: 16
37
16
Returns: 37
22
33
Returns: 44
26
21
Returns: 26
28
22
Returns: 28
32
19
Returns: 32
25
37
Returns: 50
222
924
Returns: 444
423
556
Returns: 846
819
316
Returns: 819
109
433
Returns: 218
990
223
Returns: 990
733
40
Returns: 733
685
705
Returns: 1370
254
354
Returns: 508
695
364
Returns: 695
699
928
Returns: 1398
538
630
Returns: 1076
297
548
Returns: 594
477
888
Returns: 954
765
416
Returns: 765
279
672
Returns: 558
700
452
Returns: 700
983
936
Returns: 983
138
884
Returns: 276
721
349
Returns: 721
76
536
Returns: 152
895
80
Returns: 895
789
451
Returns: 789
726
272
Returns: 726
829
469
Returns: 829
357
119
Returns: 357
93
385
Returns: 186
882
113
Returns: 882
300
751
Returns: 600
380
336
Returns: 380
621
547
Returns: 621
188302
116192
Returns: 188302
137189
154421
Returns: 274378
121715
60088
Returns: 121715
107107
99309
Returns: 107107
44687
70249
Returns: 89374
58865
24258
Returns: 58865
193427
114719
Returns: 193427
101552
125051
Returns: 203104
96506
117547
Returns: 193012
141212
187812
Returns: 282424
134060
108148
Returns: 134060
134190
47414
Returns: 134190
81802
45594
Returns: 81802
23520
95037
Returns: 47040
164138
32072
Returns: 164138
126216
46081
Returns: 126216
80467
116716
Returns: 160934
179026
29456
Returns: 179026
168134
137589
Returns: 168134
199085
151207
Returns: 199085
114727
149961
Returns: 229454
108052
96513
Returns: 108052
61433
175741
Returns: 122866
40952
187671
Returns: 81904
169251
142654
Returns: 169251
161972
175374
Returns: 323944
119457
150713
Returns: 238914
49438
163488
Returns: 98876
80899
64302
Returns: 80899
79019
126203
Returns: 158038
68991
181481
Returns: 137982
42675
96291
Returns: 85350
134136
49900
Returns: 134136
159552
86579
Returns: 159552
50172
20845
Returns: 50172
162494
116509
Returns: 162494
156869
83031
Returns: 156869
158400
46772
Returns: 158400
66510
81354
Returns: 133020
111682
198999
Returns: 223364
163279
60060
Returns: 163279
29738
105350
Returns: 59476
63707
35150
Returns: 63707
47347
141740
Returns: 94694
136088
128379
Returns: 136088
79790
28657
Returns: 79790
114340
106800
Returns: 114340
114207
75327
Returns: 114207
127022
49063
Returns: 127022
150454
36714
Returns: 150454
189929
28016
Returns: 189929
142039
69752
Returns: 142039
146593
158175
Returns: 293186
179964
103731
Returns: 179964
121473
95543
Returns: 121473
152759
138035
Returns: 152759
108834
85537
Returns: 108834
35710
32931
Returns: 35710
188493
141082
Returns: 188493
105046
36002
Returns: 105046
44818
24693
Returns: 44818
67524
64512
Returns: 67524
181121
119157
Returns: 181121
189184
151971
Returns: 189184
128802
42879
Returns: 128802
192889
100265
Returns: 192889
62225
84598
Returns: 124450
198160
28574
Returns: 198160
65242
173233
Returns: 130484
106769
20442
Returns: 106769
114983
95759
Returns: 114983
97557
150531
Returns: 195114
195295
156635
Returns: 195295
53795
130850
Returns: 107590
59990
70876
Returns: 119980
35252
22317
Returns: 35252
184782
100758
Returns: 184782
62802
35312
Returns: 62802
129870
62424
Returns: 129870
176275
104322
Returns: 176275
154384
147725
Returns: 154384
22348
132307
Returns: 44696
195403
71893
Returns: 195403
67314
108913
Returns: 134628
46778
125521
Returns: 93556
22258
48929
Returns: 44516
73888
100536
Returns: 147776
134828
60034
Returns: 134828
171530
166124
Returns: 171530
29572
197306
Returns: 59144
152352
125382
Returns: 152352
87355
132863
Returns: 174710
118844
94357
Returns: 118844
139083
170453
Returns: 278166
164213
171041
Returns: 328426
44563
60562
Returns: 89126
100553
25091
Returns: 100553
95433
58568
Returns: 95433
81578
80829
Returns: 81578
126524
137052
Returns: 253048
2
2
Returns: 4
A = 12 (in decimal) = 1100 (in binary) B = 9 (in decimal) = 1001 (in binary) Thus, A*B = 108 (in decimal) = 1101100 (in binary). The number 1101100 contains four 1s, so the correct answer is 4.
1
2
Returns: 1
Here we have A = B = 4, and thus A*B = 16. (In binary, A = B = 100 and A*B = 10000.)
1
0
Returns: 1
23
0
Returns: 23
321
0
Returns: 321
7465
0
Returns: 7465
19842
0
Returns: 19842
2
0
Returns: 2
200000
200000
Returns: 400000
200000
198754
Returns: 200000
200000
99999
Returns: 200000
100100
100100
Returns: 200200
100000
100000
Returns: 200000
2
1
Returns: 4
12
18
Returns: 24
6
1
Returns: 7
3
0
Returns: 3
15
18
Returns: 30
3
1
Returns: 4
13
7
Returns: 13
3
2
Returns: 3