CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

如何把递归函数变成非递归的,一般是什么思路??

楼主cutepig123()2006-03-20 00:16:16 在 VC/MFC / 基础类 提问

如何把递归函数变成非递归的,一般是什么思路??  
   
  例如  
   
  f(n)=n+1                                     if   n=1   or   i=2  
   
                f(n-1)*f(n-2)+1     if   n=3,4,...  
   
  问题点数:100、回复次数:11Top

1 楼stephen_young()回复于 2006-03-20 00:40:46 得分 0

用for或while循环。Top

2 楼cutepig123()回复于 2006-03-20 01:10:20 得分 0

我当然知道用for或while循环了!我问的是怎么分析这个问题并且用恰当的方式实现Top

3 楼jiangsheng(蒋晟.Net[MVP])回复于 2006-03-20 01:11:02 得分 10

用数组存储中间结果  
  a[0]=f(n-2);a[1]=f(n-1)  
  之后计算出f(n),  
  a[0]=a[1];a[1]=f(n);  
  这么循环Top

4 楼YufengShi(浪子)回复于 2006-03-20 01:17:33 得分 30

int   f1=2;  
  int   f2=3;  
  for(int   i=3;   i<=n;   ++i)  
  {  
  fi=f1*f2+1;  
  f1=f2;  
  f2=fi;  
  }  
  非递归就是递推。  
  从可以计算的点,一直推算到结果。Top

5 楼cutepig123()回复于 2006-03-20 01:23:57 得分 0

用堆栈怎么实现呢?Top

6 楼cutepig123()回复于 2006-03-20 01:24:32 得分 0

谢谢YufengShi,用堆栈怎么实现呢?  
  Top

7 楼cutepig123()回复于 2006-03-20 01:27:34 得分 0

比如这一个  
  或者  
   
  f(m,n)=n+1                                   if   m=0  
   
                        f(m-1,n)                         if   n=0  
   
                        f(m-1,f(m,n-1))   if   m!=0   and   n!=0  
   
  Top

8 楼laiyiling(陌生人[MVP])回复于 2006-03-20 08:31:48 得分 30

http://www.programfan.com/club/showbbs.asp?id=7946Top

9 楼fisker0303(天塌了,地陷了,小花狗不见了.)回复于 2006-03-20 09:20:35 得分 30

一切递归都可以用堆栈来实现非递归,随便找本数据结构的书,一大片代码。Top

10 楼Sangel()回复于 2006-03-20 09:26:48 得分 0

同意楼上说的···  
   
  Top

11 楼sirguan(123)回复于 2006-03-20 09:42:59 得分 0

清华的蓝皮的数据结构上就有讲解Top

相关问题

  • 如何把递归函数变成非递归的,一般是什么思路??
  • 递归函数
  • 递归函数?
  • 请问一个递归变成非递归的思路
  • 递归函数的使用!
  • 求写个递归函数
  • 函数递归使用
  • 关于递归函数
  • 递归函数问题
  • 帮忙做一个递归函数返回结果 100分送上 给思路也行

关键词

  • 函数
  • 循环
  • 递归
  • 函数变成非
  • 一般是什么思路
  • 用for或while循环

得分解答快速导航

  • 帖主:cutepig123
  • jiangsheng
  • YufengShi
  • laiyiling
  • fisker0303

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo