桐桐的计算 这个周末数学老师布置了一道有趣的题目pascal

 我来答
szwpvz
2014-11-29 · TA获得超过640个赞
知道小有建树答主
回答量:374
采纳率:0%
帮助的人:248万
展开全部
{题目是这样吧:
桐桐经常找一些很有趣的数学书来阅读以增长自己的数学知识。
一天,他偶然发现一个递归函数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)。
桐桐想通过编程求出这个简单的递归函数的值,可是他在编程的时候遇到了一些困难。你能帮助他吗?
如果是的话,那程序如下:}
var
  a,b,c:longint;
  f:array[-50..50,-50..50,-50..50]of longint;
function w(a,b,c:longint):longint;
begin
  if f[a,b,c]<>-1 then exit(f[a,b,c]);
  if(a<=0)or(b<=0)or(c<=0)then w:=1
  else
    if(a>20)or(b>20)or(c>20)then w:=w(20,20,20)
    else
      if(a<b)and(b<c)then w:=w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c)
      else w:=w(a-1,b,c)+w(a-1,b-1,c)+w(a-1,b,c-1)-w(a-1,b-1,c-1);
  f[a,b,c]:=w;
end;
begin
  read(a,b,c);
  fillchar(f,sizeof(f),255);
  write('w(',a,', ',b,', ',c,') = ',w(a,b,c));
end.
Suck3r
2014-11-29 · TA获得超过924个赞
知道小有建树答主
回答量:689
采纳率:50%
帮助的人:233万
展开全部
题目呢????
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式