| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 351 人关注过本帖
标题:请大家帮我分析一下这个QB的小程序
只看楼主 加入收藏
shig27
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-10-9
结帖率:0
收藏
 问题点数:0 回复次数:1 
请大家帮我分析一下这个QB的小程序
去年小学信息学奥赛的一道题,我怎么也看不懂,请帮忙分析一下,万分感谢
DECLARE FUNCTION c (a AS INTEGER, b AS INTEGER)
  PRINT c(6, 4)

  FUNCTION c (a AS INTEGER, b AS INTEGER)
    IF ((a = b) OR (b = 0)) THEN
     c = 1
    ELSE
     c = c(a - 1, b - 1) - c(a - 1, b)
    END IF
  END FUNCTION
  运行结果为:____________________
结果是7,过程倒是看的懂,但c = c(a - 1, b - 1) - c(a - 1, b) 这语句说什么也不理解,也就不知道怎么得的7,请帮忙具体说明一下.
搜索更多相关主题的帖子: 信息学 
2012-10-09 22:15
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
递归啊,一层一层的扩展一下去呀。好多,我试了一下,扩展了几层,就实在扩展不去了。
如果你要知道如何得到 7 的,那么你把每次的 C 这个函数调用的执行 语句显示出来就最 。
在 里面加显示的命令。

----------------------
c = c(a - 1, b - 1) - c(a - 1, b)
继续调用 C函数,使用 C函数的返回值进行计算,从而得到本次的计算结果。

第一次调用时,扩展为:
c(6,4)=c(5,3)-c(5,4)
第二次扩展为:
C(6,4)=(c(4,2)-c(4,3)) - ( c(4,3) - c(4,4) )
第三次扩展为:
c(6,4)=(c(3,1)- c(3,2) )-( c(3,2)- c(3,3)) - ( ( c(3,2)- c(3,3,) ) - 1 )
.......
你继续扩展吧。然后把括号一层一层的去掉,计算结果吧。

授人于鱼,不如授人于渔
早已停用QQ了
2012-10-11 08:55
快速回复:请大家帮我分析一下这个QB的小程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041747 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved