| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2240 人关注过本帖
标题:求1W的阶乘 优化算法 要求1秒内输出结果(输出到控制台)
只看楼主 加入收藏
cacker
该用户已被删除
收藏
已结贴  问题点数:10 回复次数:17 
求1W的阶乘 优化算法 要求1秒内输出结果(输出到控制台)
提示: 作者被禁止或删除 内容自动屏蔽
搜索更多相关主题的帖子: 算法 阶乘 控制台 输出 结果 
2010-09-03 22:07
cacker
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-09-04 11:56
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:2 
这样优化似乎还不如直接乘快,你不如优化为每4位4位相乘,不要一位一位做,这样能快10多倍,御坂回答

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-09-04 11:59
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:0 
以下是引用御坂美琴在2010-9-4 11:59:53的发言:

这样优化似乎还不如直接乘快,你不如优化为每4位4位相乘,不要一位一位做,这样能快10多倍,御坂回答
终于看到 瘀斑没清了 开心

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2010-09-04 12:35
wuzhanghao88
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:45
专家分:146
注 册:2009-10-25
收藏
得分:0 
兄弟你这个c语言真是够烂的!定义a[4000],用来用去都只用了a[0],用了 for( j = 0; j < nBit; j++)      //按被乘数的位数来循环
        {   
            temp = a[j] * i + carry;
            a[j] = temp % 10;        
            carry = temp / 10;          //存进位
        }
却又在全局定义中把nbit初始化为1,也就是只做一次,还不如不要了!
看了半天,实在让我不知所去,!多看例子,求阶乘没有几句的!真是天马行空!

2010-09-04 13:40
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:0 
楼上。。。
麻烦先看下https://bbs.bccn.net/thread-315288-1-1.html

( <转帖.h>说别人编写的代码很烂 其实很傻很天真)


到底是“出来混迟早要还”还是“杀人放火金腰带”?
2010-09-04 13:44
Alar30
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:10
帖 子:988
专家分:1627
注 册:2009-9-8
收藏
得分:0 
完全同意3L牛人的意见。。。
2010-09-04 13:50
烟雨袅袅
Rank: 6Rank: 6
来 自:星空雨际
等 级:侠之大者
威 望:1
帖 子:430
专家分:494
注 册:2007-11-26
收藏
得分:2 
笨办法
空间换时间
预先计算出某个范围乘积,结果存到数组中
a[0]=1000*999*998*……4*3*2*1(1000个数字)
a[1]=2000*1999*1998……1002*1001(1000个数字)

…………
a[9]=10000*9998*9997*……9992*9991(1000个数字)

如要计算2021阶系乘
则 结果为 2021*2020*2019……2001*a[1]*a[0]
如要计算5611阶乘
则 结果为 5611*5610*5609*……5002*5001*a[4]*a[3]*a[2]*a[1]*a[0]
如要计算 7997
则结果以可以为用除法 a[7]*a[6]*a[5]*a[4]*a[3]*a[2]*a[1]*a[0]/8000/7999/7998
没试过,不知道以上方法效率怎么样
 
 
2010-09-04 14:30
cacker
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-09-04 16:26
cacker
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-09-04 16:37
快速回复:求1W的阶乘 优化算法 要求1秒内输出结果(输出到控制台)
数据加载中...
 
   



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

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