首页 > 代码库 > 递归的函数

递归的函数

递归的函数

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

给定一个函数 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)。

输出

对于每组测试数据,输出函数的计算结果。

示例输入

1 1 1
2 2 2

示例输出

2

4

很有趣的一道题,一开始我看到递归两字想也没想直接敲了个递归,然后,自然而然的,超时了 回头想想当时太傻了,这不超时我吃翔啊,于是我想到了打表,可。。这是一个3元函数,打表难不成要用到3维数组? 是的,我一查竟然还真有3维数组,我只能说:学无止境。

 

<script src="https://code.csdn.net/snippets/417098.js" type="text/javascript"></script>