主题:用链表怎么求大数阶乘??望大家指点!!
★林夕★
[专家分:10] 发布于 2005-11-08 18:40:00
用链表怎么求大数阶乘??望大家指点!!
回复列表 (共6个回复)
沙发
Mcemil [专家分:1970] 发布于 2005-11-09 16:52:00
用每一个节点储存一位数
板凳
boxertony [专家分:23030] 发布于 2005-11-10 16:23:00
链表是解决大数的存储问题。解决这个问题后,只要逐个整数相乘就可以了(乘法过程中会有进位需要解决)
3 楼
★林夕★ [专家分:10] 发布于 2005-11-11 20:28:00
还是不很明白!!
小弟不才
还望详教啊啊啊啊啊啊啊啊啊啊
4 楼
liangbch [专家分:1270] 发布于 2006-06-06 19:57:00
用链表实现太慢了,用动态数组好一些。基本思想,根据stirlin公式计算出结果的长度,然后用malloc(c)/new(c++)分配适当的空间进行计算。用于数组的优点的占用空间小,可随机访问。
5 楼
boxertony [专家分:23030] 发布于 2006-06-06 22:16:00
liangbch,经常在csdn上见到你的身影,第一次看见你到这个论坛上来啊。
6 楼
boxertony [专家分:23030] 发布于 2006-06-06 22:23:00
[quote]还是不很明白!!
小弟不才
还望详教啊啊啊啊啊啊啊啊啊啊[/quote]
举个例子,假设一个结点存放一位,现在已知7!(5040)
现有结果链表: 5->0->4->0
* 8
=> 40->0->32->0
=> 40->3->2->0 (进位处理)
=> 4->0->3->2->0 (此即8的阶乘40320)
我来回复