搜索
编程论坛
→
开发语言
→
『 Python论坛 』
→ 请各位大神帮忙写一个不用递归实现阶乘的方法
标题:
请各位大神帮忙写一个不用递归实现阶乘的方法
只看楼主
yakantosat
来 自:上海
等 级:
新手上路
帖 子:4
专家分:0
注 册:2010-11-4
结帖率:
100%
楼主
已结贴
√
问题点数:0 回复次数:6
请各位大神帮忙写一个不用递归实现阶乘的方法
前阶段看了一个用C/C++、java写的关于大数阶乘的算法
但不知道如何用python来写,虽然python可以用递归的方法来实现,但是受限于内存空间的大小
如果用列表来存储每一个得出的位数,再输出就能节省资源,请各位大神帮忙写写吧,谢谢了
搜索更多相关主题的帖子:
递归
大神
阶乘
2010-11-05 12:28
Kabie
等 级:
论坛游侠
帖 子:69
专家分:185
注 册:2009-8-21
第
2
楼
得分:20
reduce(
lambda
x,y:x*y,range(1,10))
2010-11-08 06:12
yakantosat
来 自:上海
等 级:
新手上路
帖 子:4
专家分:0
注 册:2010-11-4
第
3
楼
得分:0
谢谢您的回答,可是reduce函数也是类似递归的一种算法,而我想要的就是将所得出的每一位存储到列表的每一项中,这样列表中就只存储了一个数字的序列,能够节省空间,并不是一个实际的庞大数字。
无论如何,还是感谢您了,谢谢了!!
2010-11-09 10:55
Kabie
等 级:
论坛游侠
帖 子:69
专家分:185
注 册:2009-8-21
第
4
楼
得分:0
。。。为啥用列表反而能节省空间啊?
我还以为你说的受限于内存空间是指递归过多会堆栈溢出呢。。。
2010-11-09 11:03
yakantosat
来 自:上海
等 级:
新手上路
帖 子:4
专家分:0
注 册:2010-11-4
第
5
楼
得分:0
因为列表的每一项存放的是这个结果的相应位置上的数字
2010-11-09 12:24
Kabie
等 级:
论坛游侠
帖 子:69
专家分:185
注 册:2009-8-21
第
6
楼
得分:0
根本看不懂你在说啥。。。
你的意思难道是把数字123456变成列表[1,2,3,4,5,6]。。。
那样明显只会占用更多的空间。。。
2010-11-09 17:12
wode5130xm
等 级:
新手上路
帖 子:6
专家分:0
注 册:2011-5-19
第
7
楼
得分:0
楼主可能学多了,忘记基础了,在没有认识到递归之前,我们算阶乘一般使用循环,楼主想起来点什么没有,代码如下:
s = 1
for
i
in
range(n): s *= i;
print
(s)
2011-05-20 19:55
7
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-325055-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.016280 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved