Function(Function(F...
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Function(Function(F...相关的知识,希望对你有一定的参考价值。
【题目描述】:
对于一个递归函数w(a,b,c)
如果a<=0 or b<=0 or c<=0就返回值1.
如果a>20 or b>20 or c>20就返回w(20,20,20)
如果a<b并且b<c 就返回w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c)
其它别的情况就返回w(a-1,b,c)+w(a-1,b-1,c)+w(a-1,b,c-1)-w(a-1,b-1,c-1)
这是个简单的递归函数,但实现起来可能会有些问题。当a,b,c均为15时,调用的次数将非常的多。你要想个办法才行。
【输入描述】:
会有若干行.
并以-1,-1,-1结束.
【输出描述】:
输出若干行
【样例输入】 |
【样例输出】 |
1 1 1 2 2 2 -1 -1 -1 |
w(1, 1, 1) = 2 w(2, 2, 2) = 4 |
【数据范围及描述】:
代码太水啦!
1 #include <iostream> 2 #include <cstring> 3 #include <algorithm> 4 #include <cstdio> 5 using namespace std; 6 7 typedef long long LL; 8 9 const int maxn=30; 10 LL F[maxn][maxn][maxn]; 11 12 LL w(int a,int b,int c) 13 { 14 if(a<=0||b<=0||c<=0) return 1; 15 if(a>20||b>20||c>20) return w(20,20,20); 16 if(F[a][b][c]!=-1) return F[a][b][c]; 17 if(a<b&&b<c) return F[a][b][c]=w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c); 18 return F[a][b][c]=w(a-1,b,c)+w(a-1,b-1,c)+w(a-1,b,c-1)-w(a-1,b-1,c-1); 19 } 20 21 int main() 22 { 23 int a,b,c; 24 memset(F,-1,sizeof(F)); 25 while(scanf("%d %d %d",&a,&b,&c)!=EOF) 26 { 27 if(a==-1&&b==-1&&c==-1) break; 28 printf("w(%d, %d, %d) = %lld\\n",a,b,c,w(a,b,c)); 29 } 30 return 0; 31 }
以上是关于Function(Function(F...的主要内容,如果未能解决你的问题,请参考以下文章
PHP Fatal error: Call to a member function query() on a non-object in F 代码如下
matlab中function和end问题,错误提示This statement is not inside any function. (6行代码)