易码技术论坛

 找回密码
 加入易码
搜索
查看: 172864|回复: 0

[递归 迭代 之间的转化]以Python代码为例.

[复制链接]
发表于 2006-11-25 16:51:46 | 显示全部楼层 |阅读模式
  #Python2.5
#例子:求0-100的和的函数的程式;

#第一种定义-尾递归--函数式语言的写法。
  1. def sum(n,p=0):
  2. if  n==0 :return p;
  3. elif n> 0 :return sum(n-1,p+n);
复制代码
#第二种定义-迭代  --命令式语言的写法。
  1. def sum2(n,p=0):
  2. while True:
  3.   if  n==0:return p;
  4.   elif n >0:n,p=n-1,p+n;
复制代码
#可见尾递归转化成迭代是非常简单的。。

##而且尾递归完全可以当迭代来理解。。
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-4-23 16:07 , Processed in 0.008737 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表