Problem Statement
For example, 8765 ^^ 2309 = 462 (c1 = (8 ^ 2) % 10 = 10 % 10 = 0, c2 = (7 ^ 3) % 10 = 4 % 10 = 4, c3 = (6 ^ 0) % 10 = 6 % 10 = 6, c4 = (5 ^ 9) % 10 = 12 % 10 = 2), and 5 ^^ 123 = 126 ("5" is prepended with two leading zeros to become "005").
When multiple ^^ operations occur in an expression, they must be evaluated from left to right. For example, A ^^ B ^^ C means (A ^^ B) ^^ C.
You are given an int N. Return the value of N ^^ (N - 1) ^^ (N - 2) ^^ ⦠^^ 1.
Definition
- Class:
- DoubleXor
- Method:
- calculate
- Parameters:
- int
- Returns:
- int
- Method signature:
- int calculate(int N)
- (be sure your method is public)
Notes
- If a and b are single bits then a ^ b is defined as (a + b) % 2. For two integers, A and B, in order to calculate A ^ B, they need to be represented in binary: A = (an...a1)2, B = (bn...b1)2 (if the lengths of their representations are different, the shorter one is prepended with the necessary number of leading zeroes). Then A ^ B = C = (cn...c1)2, where ci = ai ^ bi. For example, 10 ^ 3 = (1010)2 ^ (0011)2 = (1001)2 = 9.
Constraints
- N will be between 1 and 1,000,000, inclusive.
Examples
1
Returns: 1
This is simply 1.
2
Returns: 3
2^^1=3
7
Returns: 0
7^^6^^5^^4^^3^^2^^1=0
10
Returns: 11
100
Returns: 100
1000
Returns: 1000
10000
Returns: 10000
100000
Returns: 100000
1000000
Returns: 1000000
9
Returns: 1
99
Returns: 0
999
Returns: 0
9999
Returns: 0
99999
Returns: 0
999999
Returns: 0
1
Returns: 1
11
Returns: 0
111
Returns: 0
1111
Returns: 0
11111
Returns: 0
111111
Returns: 0
22
Returns: 23
222
Returns: 223
2222
Returns: 2223
22222
Returns: 22223
222222
Returns: 222223
77
Returns: 1
777
Returns: 1
7777
Returns: 1
77777
Returns: 1
777777
Returns: 1
123456
Returns: 123012
654321
Returns: 1
78
Returns: 73
87
Returns: 0
31
Returns: 0
93
Returns: 1
98
Returns: 33
111
Returns: 0
121
Returns: 1
42
Returns: 43
18468
Returns: 12022
6335
Returns: 0
26501
Returns: 1
19170
Returns: 13131
15725
Returns: 1
11479
Returns: 0
29359
Returns: 0
26963
Returns: 0
24465
Returns: 1
5706
Returns: 5303
28146
Returns: 22103
23282
Returns: 23223
16828
Returns: 12222
9962
Returns: 3323
492
Returns: 432
2996
Returns: 2332
11943
Returns: 0
4828
Returns: 4222
5437
Returns: 1
32392
Returns: 32332
14605
Returns: 1
3903
Returns: 0
154
Returns: 111
293
Returns: 1
12383
Returns: 0
17422
Returns: 13023
18717
Returns: 1
19719
Returns: 0
19896
Returns: 13232
5448
Returns: 5002
21727
Returns: 0
14772
Returns: 10332
11539
Returns: 0
1870
Returns: 1231
19913
Returns: 1
25668
Returns: 21222
26300
Returns: 22300
17036
Returns: 13032
9895
Returns: 0
28704
Returns: 22300
23812
Returns: 23212
31323
Returns: 0
30334
Returns: 30331
17674
Returns: 13231
4665
Returns: 1
15142
Returns: 11103
7712
Returns: 7312
28254
Returns: 22211
6869
Returns: 1
19656
Returns: 13212
167835
Returns: 0
123250
Returns: 123211
171961
Returns: 1
447795
Returns: 0
103076
Returns: 103032
233496
Returns: 233032
473304
Returns: 433300
939228
Returns: 333222
361836
Returns: 321232
237160
Returns: 233120
139062
Returns: 133023
112219
Returns: 0
302574
Returns: 302131
644224
Returns: 600220
325696
Returns: 321232
416108
Returns: 412102
794310
Returns: 730311
200400
Returns: 200000
32220
Returns: 32220
571648
Returns: 531202
107882
Returns: 103223
448210
Returns: 402211
101104
Returns: 101100
220726
Returns: 220323
353460
Returns: 313020
502554
Returns: 502111
32680
Returns: 32220
537208
Returns: 533202
412870
Returns: 412231
11412
Returns: 11012
161013
Returns: 1
30923
Returns: 0
38663
Returns: 0
171985
Returns: 1
360282
Returns: 320223
650430
Returns: 610031
130221
Returns: 1
714
Returns: 711
216306
Returns: 212303
393120
Returns: 333120
81175
Returns: 0
636637
Returns: 1
364559
Returns: 0
287988
Returns: 223322
415800
Returns: 411200
203148
Returns: 203102
289982
Returns: 223323
9877
Returns: 1
504060
Returns: 500020
102
Returns: 103
8
Returns: 2
11736
Returns: 11332
666
Returns: 623
999998
Returns: 333333
298
Returns: 233
4
Returns: 4
100006
Returns: 100003
1024
Returns: 1020
12
Returns: 12
12346
Returns: 12303
140
Returns: 100
666999
Returns: 0
927928
Returns: 323322
14
Returns: 11
987654
Returns: 323211
123142
Returns: 123103
100004
Returns: 100000
123458
Returns: 123013
4848
Returns: 4202
123124
Returns: 123120
46238
Returns: 42233
4736
Returns: 4332
123707
Returns: 0
300004
Returns: 300000
999973
Returns: 1
156
Returns: 112
289384
Returns: 223320