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 }
View Code

技术分享

以上是关于Function(Function(F...的主要内容,如果未能解决你的问题,请参考以下文章

PHP Fatal error: Call to a member function query() on a non-object in F 代码如下

function函数——函数的定义及参数

matlab中function和end问题,错误提示This statement is not inside any function. (6行代码)

NEC 框架规范 css function

P-Function

fun和function关键字有什么区别?