| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1246 人关注过本帖
标题:请各位大神帮忙写一个不用递归实现阶乘的方法
只看楼主 加入收藏
yakantosat
Rank: 1
来 自:上海
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-11-4
结帖率:100%
收藏
已结贴  问题点数:0 回复次数:6 
请各位大神帮忙写一个不用递归实现阶乘的方法
前阶段看了一个用C/C++、java写的关于大数阶乘的算法
但不知道如何用python来写,虽然python可以用递归的方法来实现,但是受限于内存空间的大小
如果用列表来存储每一个得出的位数,再输出就能节省资源,请各位大神帮忙写写吧,谢谢了
搜索更多相关主题的帖子: 递归 大神 阶乘 
2010-11-05 12:28
Kabie
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:69
专家分:185
注 册:2009-8-21
收藏
得分:20 
reduce(lambda x,y:x*y,range(1,10))
2010-11-08 06:12
yakantosat
Rank: 1
来 自:上海
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-11-4
收藏
得分:0 
谢谢您的回答,可是reduce函数也是类似递归的一种算法,而我想要的就是将所得出的每一位存储到列表的每一项中,这样列表中就只存储了一个数字的序列,能够节省空间,并不是一个实际的庞大数字。
无论如何,还是感谢您了,谢谢了!!
2010-11-09 10:55
Kabie
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:69
专家分:185
注 册:2009-8-21
收藏
得分:0 
。。。为啥用列表反而能节省空间啊?

我还以为你说的受限于内存空间是指递归过多会堆栈溢出呢。。。
2010-11-09 11:03
yakantosat
Rank: 1
来 自:上海
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-11-4
收藏
得分:0 
因为列表的每一项存放的是这个结果的相应位置上的数字
2010-11-09 12:24
Kabie
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:69
专家分:185
注 册:2009-8-21
收藏
得分:0 
根本看不懂你在说啥。。。

你的意思难道是把数字123456变成列表[1,2,3,4,5,6]。。。

那样明显只会占用更多的空间。。。
2010-11-09 17:12
wode5130xm
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-5-19
收藏
得分:0 
楼主可能学多了,忘记基础了,在没有认识到递归之前,我们算阶乘一般使用循环,楼主想起来点什么没有,代码如下:
s = 1
for i in range(n):
    s *= i;
print(s)

2011-05-20 19:55
快速回复:请各位大神帮忙写一个不用递归实现阶乘的方法
数据加载中...
 
   



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

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