给定一个函数 f(a, b, c):
如果 a ≤ 0 或 b ≤ 0 或 c ≤ 0 返回值为 1;
如果 a > 20 或 b > 20 或 c > 20 返回值为 f(20, 20, 20);//前两个条件注意,输入的时候就可以解决掉
如果 a < b 并且 b < c 返回 f(a, b, c?1) + f(a, b?1, c?1) ? f(a, b?1, c);
其它情况返回 f(a?1, b, c) + f(a?1, b?1, c) + f(a?1, b, c?1) ? f(a-1, b-1, c-1)。
看起来简单的一个函数?你能做对吗?
输入包含多组测试数据,对于每组测试数据:
输入只有一行为 3 个整数a, b, c(a, b, c < 30)。
很有趣的一道题,一开始我看到递归两字想也没想直接敲了个递归,然后,自然而然的,超时了 回头想想当时太傻了,这不超时我吃翔啊,于是我想到了打表,可。。这是一个3元函数,打表难不成要用到3维数组? 是的,我一查竟然还真有3维数组,我只能说:学无止境。