Problem Statement
A number n taken to the falling factorial power k is defined as n*(n-1)*...*(n-k+1). We will denote it by n^^k. For example, 7^^3=7*6*5=210. By definition, n^^1=n.
We will now continue this definition to the non-positive values of k using the following fact: (n-k)*(n^^k)=n^^(k+1), or, in other words, n^^k=(n^^(k+1))/(n-k). It is directly derived from the above definition.
By using it, we find:
- n^^0=n^^1/(n-0)=1,
- n^^(-1)=n^^0/(n+1)=1/(n+1),
- n^^(-2)=1/(n+1)/(n+2),
- and, in general, n^^(-k)=1/(n+1)/(n+2)/.../(n+k).
Given a positive
Definition
- Class:
- FallingFactorialPower
- Method:
- compute
- Parameters:
- int, int
- Returns:
- double
- Method signature:
- double compute(int n, int k)
- (be sure your method is public)
Notes
- Your return must have relative or absolute error less than 1E-9.
Constraints
- n will be between 1 and 10, inclusive.
- k will be between -5 and 5, inclusive.
Examples
7
3
Returns: 210.0
7^^3=7*6*5=210.
10
1
Returns: 10.0
5
0
Returns: 1.0
3
-1
Returns: 0.25
2
-3
Returns: 0.016666666666666666
1
-5
Returns: 0.001388888888888889
1
-4
Returns: 0.008333333333333333
1
-3
Returns: 0.041666666666666664
1
-2
Returns: 0.16666666666666666
1
-1
Returns: 0.5
1
0
Returns: 1.0
1
1
Returns: 1.0
1
2
Returns: 0.0
1
3
Returns: -0.0
1
4
Returns: 0.0
1
5
Returns: -0.0
2
-5
Returns: 3.968253968253968E-4
2
-4
Returns: 0.002777777777777778
2
-3
Returns: 0.016666666666666666
2
-2
Returns: 0.08333333333333333
2
-1
Returns: 0.3333333333333333
2
0
Returns: 1.0
2
1
Returns: 2.0
2
2
Returns: 2.0
2
3
Returns: 0.0
2
4
Returns: -0.0
2
5
Returns: 0.0
3
-5
Returns: 1.488095238095238E-4
3
-4
Returns: 0.0011904761904761904
3
-3
Returns: 0.008333333333333333
3
-2
Returns: 0.05
3
-1
Returns: 0.25
3
0
Returns: 1.0
3
1
Returns: 3.0
3
2
Returns: 6.0
3
3
Returns: 6.0
3
4
Returns: 0.0
3
5
Returns: -0.0
4
-5
Returns: 6.613756613756613E-5
4
-4
Returns: 5.952380952380952E-4
4
-3
Returns: 0.0047619047619047615
4
-2
Returns: 0.03333333333333333
4
-1
Returns: 0.2
4
0
Returns: 1.0
4
1
Returns: 4.0
4
2
Returns: 12.0
4
3
Returns: 24.0
4
4
Returns: 24.0
4
5
Returns: 0.0
5
-5
Returns: 3.3068783068783064E-5
5
-4
Returns: 3.3068783068783067E-4
5
-3
Returns: 0.002976190476190476
5
-2
Returns: 0.023809523809523808
5
-1
Returns: 0.16666666666666666
5
0
Returns: 1.0
5
1
Returns: 5.0
5
2
Returns: 20.0
5
3
Returns: 60.0
5
4
Returns: 120.0
5
5
Returns: 120.0
6
-5
Returns: 1.8037518037518038E-5
6
-4
Returns: 1.984126984126984E-4
6
-3
Returns: 0.001984126984126984
6
-2
Returns: 0.017857142857142856
6
-1
Returns: 0.14285714285714285
6
0
Returns: 1.0
6
1
Returns: 6.0
6
2
Returns: 30.0
6
3
Returns: 120.0
6
4
Returns: 360.0
6
5
Returns: 720.0
7
-5
Returns: 1.0521885521885519E-5
7
-4
Returns: 1.2626262626262624E-4
7
-3
Returns: 0.0013888888888888887
7
-2
Returns: 0.013888888888888888
7
-1
Returns: 0.125
7
0
Returns: 1.0
7
1
Returns: 7.0
7
2
Returns: 42.0
7
3
Returns: 210.0
7
4
Returns: 840.0
7
5
Returns: 2520.0
8
-5
Returns: 6.475006475006474E-6
8
-4
Returns: 8.417508417508415E-5
8
-3
Returns: 0.0010101010101010099
8
-2
Returns: 0.01111111111111111
8
-1
Returns: 0.1111111111111111
8
0
Returns: 1.0
8
1
Returns: 8.0
8
2
Returns: 56.0
8
3
Returns: 336.0
8
4
Returns: 1680.0
8
5
Returns: 6720.0
9
-5
Returns: 4.162504162504163E-6
9
-4
Returns: 5.827505827505828E-5
9
-3
Returns: 7.575757575757577E-4
9
-2
Returns: 0.009090909090909092
9
-1
Returns: 0.1
9
0
Returns: 1.0
9
1
Returns: 9.0
9
2
Returns: 72.0
9
3
Returns: 504.0
9
4
Returns: 3024.0
9
5
Returns: 15120.0
10
-5
Returns: 2.775002775002775E-6
10
-4
Returns: 4.1625041625041625E-5
10
-3
Returns: 5.827505827505828E-4
10
-2
Returns: 0.007575757575757576
10
-1
Returns: 0.09090909090909091
10
0
Returns: 1.0
10
1
Returns: 10.0
10
2
Returns: 90.0
10
3
Returns: 720.0
10
4
Returns: 5040.0
10
5
Returns: 30240.0