Problem Statement
Elly recently bought such a laptop and now her mother is confused. How can an 8-bit computer be also 64-bit!? Elly, always being pain in the assembler, decided to joke with her by coming up with the following definition: "A 64-bit 8-bit number with at most 64 bits in its binary representation, which has exactly 8 bits set. (I.e., out of the 64 bits there are exactly eight 1s.)". By this definition, the first few such numbers are 255, 383, 447, 479, etc.
Elly told her mother that, in order to be in line with the new technologies, she has to be able to calculate these numbers by heart. To her surprise, she actually started doing so. Now the girl wants to check whether her calculations are correct.
Your task is simple: given an
Definition
- Class:
- Ellys8Bit
- Method:
- getNumber
- Parameters:
- int
- Returns:
- long
- Method signature:
- long getNumber(int N)
- (be sure your method is public)
Constraints
- N will be between 1 and 1,000,000,000, inclusive.
Examples
1
Returns: 255
The first 64-bit 8-bit number is just the binary number 11111111, which is 255 in decimal.
2
Returns: 383
The second 64-bit 8-bit number is 101111111, which is 383 in decimal.
3
Returns: 447
The third 64-bit 8-bit number is 110111111, which is 447 in decimal.
1000
Returns: 7032
The thousandth 64-bit 8-bit number is 1101101111000, which is 7032 in decimal.
133742
Returns: 1087088
537655880
Returns: 1125899983585796
Watch out for overflows!
666
Returns: 5527
1337
Returns: 8911
4266642
Returns: 480321552
10000000
Returns: 3225424112
1234567
Returns: 36454435
9876543
Returns: 2973794436
1337666
Returns: 42035840
6661337
Returns: 1158680625
421337
Returns: 5587714
3333333
Returns: 274728593
9999999
Returns: 3225424104
7171717
Returns: 1358955114
5555555
Returns: 809568518
97531
Returns: 667393
24680
Returns: 133479
1287644
Returns: 38486112
123456789
Returns: 4415227629056
666666666
Returns: 2256474084483200
999999999
Returns: 10520127258763776
1000000000
Returns: 10520127258764288
795755685
Returns: 4523459959357440
581869303
Returns: 1152709093294080
404620563
Returns: 285873132800002
708632712
Returns: 2430470455361544
545404205
Returns: 1125968659877448
133711906
Returns: 4947936610640
372047868
Returns: 212210593038592
949333986
Returns: 9147936752800769
579004999
Returns: 1144325316550680
323567404
Returns: 140808358596736
418932836
Returns: 299616918571793
944672732
Returns: 9079801382461448
196140741
Returns: 18691773175856
809094427
Returns: 4574254003662848
946129058
Returns: 9086366306545665
30574577
Returns: 68730749970
182506778
Returns: 17605272277025
15198493
Returns: 8871154176
150802600
Returns: 8813550242320
138749191
Returns: 5566822875284
676943010
Returns: 2269433070387712
177512688
Returns: 17592195124480
126303054
Returns: 4453881155841
81133258
Returns: 1106495160325
183966551
Returns: 17626545856905
471852627
Returns: 564135365444228
84672537
Returns: 1138837684296
867128744
Returns: 6193626308673556
857788837
Returns: 5633898117644354
275731772
Returns: 70717727068160
609397213
Returns: 1337015031373824
20544910
Returns: 18421776528
811450930
Returns: 4578367357845536
483031419
Returns: 570096779166464
361913171
Returns: 175991125262340
547204602
Returns: 1126037346355242
892462744
Returns: 9007218584585220
522136404
Returns: 738872350941216
173978710
Returns: 13262875822656
131752569
Returns: 4679924973568
478582453
Returns: 567349079539712
867889991
Returns: 6267216278650896
153380496
Returns: 8864812859413
551745921
Returns: 1126260952564225
647984700
Returns: 2251941549245441
910208077
Returns: 9009415492517890
283496852
Returns: 72567771783188
368550363
Returns: 211106928787984
379821990
Returns: 281476356636707
712568903
Returns: 2533348878584384
40498239
Returns: 138116988944
113911604
Returns: 3028155367440
103237637
Returns: 2237712695432
39073007
Returns: 137465299138
684602223
Returns: 2287122229248008
812852787
Returns: 4583866811547648
479711181
Returns: 567382930100229
746745228
Returns: 3449339909243392
735241235
Returns: 3096242997446912
296707007
Returns: 79731781281796
262522458
Returns: 70369281583874
870676136
Returns: 6755536888987714
136721027
Returns: 5497559418888
359573809
Returns: 168233868998656
189375153
Returns: 17768564916296
547914047
Returns: 1126039493317776
198304613
Returns: 18829406144576
640439653
Returns: 2251804243656872
417177802
Returns: 299085684813828
25475624
Returns: 35165062465
758242872
Returns: 4503616945799236
764919655
Returns: 4503806465542144
310701088
Returns: 106944694587392
361931892
Returns: 175991654253120
100000000
Returns: 2207646765712
12345
Returns: 60940