1000. 函数求值

Description

定义超级和函数F如下:

F(0, n) = n,对于所有的正整数n..
F(k, n) = F(k – 1, 1) + F(k – 1, 2) + … + F(k – 1, n),对于所有的正整数k和n.

请实现下面Solution类中计算F(k, n)的函数(1 <= k, n <= 14).

1
2
3
4
5
6
class Solution {
public:
int (int k, int n) {
}
};

例1:F(1, 3) = 6

例2:F(2, 3) = 10

例3:F(10, 10) = 167960

Solution

递归求解,翻译成代码即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution {
public:
int (int k, int n) {
if (k == 0) {
return n;
} else if (k > 0) {
int subsum = 0;
for (int i = 1; i <= n; i++) {
subsum += F(k - 1, i);
}
return subsum;
} else {
return -1;
}
}
};