首先,这题的递归函数题干中写的很清楚,但是写了之后会发现,很容易RE和TLE
题干中提到,当a,b,c都为15时,调用的次数会很多,这个时候我们就会意识到这题需要用到记忆化搜索,记忆化搜索的关键就是用数组存储已经计算过的结果
再加上这题的数据范围非常大,所以我们需要开long long
代码
#include<bits/stdc++.h>
using namespace std;
long long f[25][25][25];
long long w(long long a,long long b,long long c)
{
if(a<=0||b<=0||c<=0)
{
return 1;
}
else if(a>20||b>20||c>20)
{
return w(20,20,20);
}
else if(f[a][b][c]!=0) //最关键的一点,记忆化,f[a][b][c]!=0就意味着这个数遍历过,可以直接调用
{
return f[a][b][c];
}
e