Problem Statement
Note: this problem statement contains an image that may not display properly if viewed outside the applet.
Given an
Definition
- Class:
- FactorialTower
- Method:
- exprValue
- Parameters:
- int[], int
- Returns:
- int
- Method signature:
- int exprValue(int[] a, int m)
- (be sure your method is public)
Notes
- The expression is calculated from top to bottom. See example 5.
- "x mod y" means the remainder of x divided by y.
- Assume 0! = 1.
Constraints
- a will contain between 1 and 50 elements, inclusive.
- Each element of a will be between 0 and 2147483647, inclusive.
- m will be between 1 and 40000, inclusive.
Examples
{2,2,2,2}
10
Returns: 6
Last digit of 65536.
{3,8}
100
Returns: 76
(3!8!) mod 100 = 76.
{775,967,1,1,1}
39877
Returns: 4832
{0}
40000
Returns: 1
Remember that 0! is 1.
{5,4,123456789,987654321,687955994,1162330089,195458992,1687386387, 1092101949,1086091397,902287014,341660341,1600834655,131565486,1494304912, 384585199,1883009662,916903507,1895924341,397197724,1883021244,1616061080, 1437763283,621297237,1883141487,282508826,285957625,1249530903,1484124572, 1822993209,1668351723,174237628,1589170712,992959839,1281777023,1158939002, 1488964134,1806511164,1519656093,159671689,542573000,1571768398,1203500608, 1053387535,793607740,1535801392,1798307613,552983945,901802936,1023595016}
40000
Returns: 0
{3,0}
5
Returns: 1
{39,1}
1353
Returns: 165
{39,0}
1353
Returns: 165
{39}
1353
Returns: 165
{2,2}
36864
Returns: 4
{2,2,2}
36864
Returns: 16
{2,3}
36864
Returns: 64
{2,3,2}
36864
Returns: 4096
The expression is calculated from top to bottom. (2! to the power of (3!2!)) mod 36864 = 4096.
{2,0}
36864
Returns: 2
{2,1}
160
Returns: 2
{2,2}
160
Returns: 4
{2,3}
160
Returns: 64
{2,4}
160
Returns: 96
{2,5}
160
Returns: 96
{39595,10513,123,32,2,2,0}
39983
Returns: 18526
{39595,10513,123,32,2,2,2}
39983
Returns: 9411
{2,2,2,2}
36864
Returns: 28672
{6,568,0}
10000
Returns: 0
{5,999,2150000}
25
Returns: 0
{319,846,215,7467}
1
Returns: 0
{1,7,199}
39991
Returns: 1
{30000}
39301
Returns: 13487
{3,7,6,2}
100
Returns: 76
{8,1,999999999}
2
Returns: 0
{1,0}
1
Returns: 0
{0}
1
Returns: 0
{0}
2
Returns: 1
{0}
40000
Returns: 1
{1}
10
Returns: 1
{0,1}
39991
Returns: 1
{6,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647,2147483647}
39953
Returns: 1
{39988}
39989
Returns: 39988
{15150}
39989
Returns: 21709
{15150,0}
39989
Returns: 21709
{15150,2}
39989
Returns: 10316
{15150,7}
39989
Returns: 33422
{15150,15150}
39989
Returns: 1
{15150,908573485,123456789,987654321,687955994,1162330089,195458992,1687386387,1092101949,1086091397,902287014,341660341,1600834655,131565486,1494304912,384585199,1883009662,916903507,1895924341,397197724,1883021244,1616061080,1437763283,621297237,1883141487,282508826,285957625,1249530903,1484124572,1822993209,1668351723,174237628,1589170712,992959839,1281777023,1158939002,1488964134,1806511164,1519656093,159671689,542573000,1571768398,1203500608,1053387535,793607740,1535801392,1798307613,552983945,901802936,1023595016}
39989
Returns: 1
{5,4,123456789,987654321,687955994,1162330089,195458992,1687386387,1092101949,1086091397,902287014,341660341,1600834655,131565486,1494304912,384585199,1883009662,916903507,1895924341,397197724,1883021244,1616061080,1437763283,621297237,1883141487,282508826,285957625,1249530903,1484124572,1822993209,1668351723,174237628,1589170712,992959839,1281777023,1158939002,1488964134,1806511164,1519656093,159671689,542573000,1571768398,1203500608,1053387535,793607740,1535801392,1798307613,552983945,901802936,1023595016}
40000
Returns: 0
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
40000
Returns: 1
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
2
Returns: 1
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
1
Returns: 0
{1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
40000
Returns: 1
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
40000
Returns: 1
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
2
Returns: 1
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
1
Returns: 0
{2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2}
36864
Returns: 28672
{2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2}
2
Returns: 0
{1,1,1,1,1,1,1,1,1,1,1,1,39595,10513,123,32,2,2,2,1,1,1,1,1,1}
39983
Returns: 1
{39595,10513,123,32,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
39983
Returns: 9411
{39595,10513,123,32,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
39983
Returns: 9411
{39595,10513,123,32,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,39595,10513,123,32,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
39983
Returns: 9411
{2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1}
28677
Returns: 2
{39595,10513,31,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
39983
Returns: 32260
{39595,10513,31,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
39983
Returns: 23029
{39595,10513,31,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
39983
Returns: 16500
{39595,10513,31,4,5,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
39983
Returns: 18526
{39595,10513,31,4,5,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
39983
Returns: 18526
{39595,10513,31,4,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
39983
Returns: 18526
{39595,10513,31,4,28,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
39983
Returns: 18526
{39595,10513,31,4,28,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
39983
Returns: 18526
{39595,10513,31,4,28,687955994,1162330089,195458992,1687386387,1092101949,1086091397,902287014,341660341,1600834655,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
39983
Returns: 18526
{3,1}
5
Returns: 1
{2,17}
39989
Returns: 29110
{2,15}
32768
Returns: 0
{2,16}
32768
Returns: 0
{2,14}
32768
Returns: 0
{3,5330}
32768
Returns: 0
{3,40000}
32768
Returns: 0
{3,39999}
32768
Returns: 0
{3,29999}
32768
Returns: 0
{3,19999}
32768
Returns: 0
{3,9999}
32768
Returns: 0
{2,1,500,600}
34816
Returns: 2
{2,500,600}
34816
Returns: 30720
{2, 3, 2, 1, 10, 10, 3, 4, 7, 1, 4, 10, 9}
97
Returns: 75
{7, 3, 2, 1, 10, 8, 10, 2, 3, 8, 2, 3, 1, 7, 3, 2, 1, 4, 5, 7, 8, 5, 3, 7, 3, 8, 8, 6, 1, 8, 1, 6, 3, 5, 6, 4, 5, 1, 3, 8, 6, 9, 7, 3, 6, 4, 2, 10, 5}
82
Returns: 40
{9, 2, 2, 1}
233
Returns: 225
{9, 2, 2}
233
Returns: 225
{4, 3, 2, 1, 3, 8, 4, 6, 10, 4, 8, 9, 7, 4, 3, 2, 7, 3, 7, 5}
578
Returns: 310
{2, 2, 1, 10, 10, 2, 6}
536
Returns: 4
{5, 3, 2, 1}
723
Returns: 240
{3, 2, 1, 5}
392
Returns: 36
{2, 2, 0, 7, 5, 3, 2, 9, 9, 0, 8, 7, 10}
72
Returns: 4
{2, 2, 0, 7, 5, 3, 2, 9, 9, 0, 8, 7, 10}
20
Returns: 4
{2, 2, 0, 7}
15
Returns: 4
{2, 2, 0, 7 }
20
Returns: 4
{2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647, 2147483647 }
40000
Returns: 0
{0 }
1
Returns: 0
{3, 2, 5, 7 }
40000
Returns: 16256
{2, 2 }
128
Returns: 4
{2, 0 }
4
Returns: 2