递归函数如何写,有无规律。

zhoumins 2005-07-19 10:53:28
我在遍历XML节点时,要用到递归函数,

static void display(XmlNode node)
{
if (node != null)
Console.WriteLine("{0}\t{1}\t{2}",node.NodeType,node.Name,node.Value);

if (node.HasChildNodes)
{
node = node.FirstChild;
while (node != null)
{
display(node);
node = node.NextSibling;
}
}

}
(这是书上的例子)
能看懂,但要写起来挺困难,不知道写递归函数有无规律或容易掌握的方法。
...全文
198 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoumins 2005-07-19
  • 打赏
  • 举报
回复
renniliao(小a)

我喜欢“我随便写了阿:”
renniliao 2005-07-19
  • 打赏
  • 举报
回复
我随便写了阿:
a.asp中:
<%
function jiecheng(n)
if n=1 then
jiecheng=1
else
jiecheng=n*jiecheng(n-1)
end if
end function
response.Write jiecheng(5)
%>
这里面你只要考虑最后一步的表达式和其他每步的表达式的写法就行了.比如阶乘是:
n=5
5*4*3*2*1

n*(n-1)*(n-2)* ... * 1
summercat 2005-07-19
  • 打赏
  • 举报
回复
http://dev.csdn.net/article/28/28308.shtm
summercat 2005-07-19
  • 打赏
  • 举报
回复
写完了,看看那些高手写的 n 的阶乘
zhoumins 2005-07-19
  • 打赏
  • 举报
回复
summercat(飘轩(灌篮高手))
写好一个慢慢就好了,先写简单的,N!--也就是说没有一般的思路,对吗?
summercat 2005-07-19
  • 打赏
  • 举报
回复
写好一个慢慢就好了,先写简单的,N!
zhoumins 2005-07-19
  • 打赏
  • 举报
回复
renniliao(小a) 能不能再举个例子。
有无如何写递归函数的一般思路?
zhoumins 2005-07-19
  • 打赏
  • 举报
回复
理解思想就行了
我觉得我能理解思想,就是自己写掰吃不开。
tianch 2005-07-19
  • 打赏
  • 举报
回复
规律就是在函数内调用函数本身,到一定的条件就返回,不过一般不到万不得已不用递归,复杂的递归太耗内存,而且编程容易出错,排错比较困难
renniliao 2005-07-19
  • 打赏
  • 举报
回复
注:上面的例子只是递归应用中的一种。
孟子E章 2005-07-19
  • 打赏
  • 举报
回复
理解思想就行了
renniliao 2005-07-19
  • 打赏
  • 举报
回复
递归函数一般是用于解决类似于以下问题的:
x=0 f(x)=1
x>=1 f(x)=f(x-1)+f(x-2)

递归包括两个部分,一个是递推,就是将问题逐步深入的 表示下去,不去考虑是否能够得到确定的值,一部分是回归,也就是说,当函数的参数取得某个值的时候,函数的值能取确定的值,这样就能回归到之前的调用中去。
renniliao 2005-07-19
  • 打赏
  • 举报
回复
你把上面的代码都粘到一个页面中,然后执行这个页面,看看结果。
zhoumins 2005-07-19
  • 打赏
  • 举报
回复
跑哪去了,都找不到了
renniliao 2005-07-19
  • 打赏
  • 举报
回复
<br>
菲波纳挈数列:数列的前两项是0和1,数列的后面的项的规律是:
每一项是前两项的和,如:<br>
第1,2,3,4,5,6,7,8, 9...项<br>
  0,1,1,2,3,5,8,13,21...<br>

<%
'函数功能:返回菲波纳挈数列第n项的项值
function fibo(n)
if n=1 then
fibo=0
elseif n=2 then
fibo=1
else
fibo=fibo(n-1)+fibo(n-2)
end if
end function

response.Write(fibo(1) & "<br>")
response.Write(fibo(5) & "<br>")
response.Write(fibo(7) & "<br>")
%>
zhoumins 2005-07-19
  • 打赏
  • 举报
回复
帮帮忙呀!
zhoumins 2005-07-19
  • 打赏
  • 举报
回复
再举个例子好吗?

28,405

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧