| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1356 人关注过本帖
标题:请教一个编程题目的解法
只看楼主 加入收藏
crystaljing
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-7-19
收藏
 问题点数:0 回复次数:18 
请教一个编程题目的解法
求N!算出来的结果有多少位.思路是什么?到底该怎么样求?我的数学功底不好,想了半天还是没什么头绪!,希望各位帮忙指点指点!不甚感激~~~~~~~~~~~~~~~

搜索更多相关主题的帖子: 解法 
2007-07-23 11:13
elftree
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-7-23
收藏
得分:0 

先定义2个整形数据N和SUM
输入N,设定初始SUM为1
然后以N为控制变量,用for(i=1,i++,i<=N)来循环.每次循环都把SUM乘以i
这样就达到了N!的目的

2007-07-23 12:11
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
收藏
得分:0 

数学功底不好也不至于N!都不知道怎么算撒a


天行健,君子以自强不息!!QQ:68660681
2007-07-23 13:00
crystaljing
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-7-19
收藏
得分:0 

不是这样的!!我是想问,如果你输入一个数N,算出N!那么N!有多少位.比如输入1,2,3.则输出1.如果再输入32000,则输出130271.
真是不好意思,我没问清楚,还是非常感谢上面的朋友!!


好好享受我的大学生活~~~
2007-07-23 13:06
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
收藏
得分:0 
数据这么大阿,那肯定不能用一般的方法算了,在两个数的乘积的位数上考虑,要把结果算出来不太现实。。

天行健,君子以自强不息!!QQ:68660681
2007-07-23 13:21
yanmin0614
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-7-22
收藏
得分:0 

先用递归求N!
int Account = 1; //位数
long Num = 10;
long Sum=N!
bool T = true;
while( T )
{
Sum /= Num;
if( Sum == 0 ) break;
Account ++;
}

试试,应该可以。


2007-07-23 14:45
crystaljing
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-7-19
收藏
得分:0 
谢了啊!!!
算法没问题,程序也通的过,但是题目给的范围很大,N的取值是 0 < N < 1000000 (1 million). 所以输入的N较大之后没有结果输出....
我看到这个题目的另一种解法,是一个公式,位数length=log10(2*i*pi)/2+i*log10(i/e);(pi=3.1415926535;e=2.718281828459;),这个程序可以提交成功,但是我不知道是怎么得来的。有没有人知道这个公式的得来或是有比这个更好的算法。。。。。。。。。。。。期待。。。。。。。。。。。。

好好享受我的大学生活~~~
2007-07-23 16:47
crystaljing
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-7-19
收藏
得分:0 

第一次兴致勃勃地跑来逛论坛,结果闹了笑话。。。。。,还是怪自己问的不是很清楚,以后会多向大家学习,多多交流!!!!!!


好好享受我的大学生活~~~
2007-07-23 16:53
yanmin0614
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-7-22
收藏
得分:0 
7楼,公式中i指什么?原理差不多,不过公式好精简!

2007-07-23 17:46
yanmin0614
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-7-22
收藏
得分:0 
我想起来了,你的1&lt;N&lt;1000000,应该不是考你的计算机能力,当然还是考算法的。但不要忘记了,Sum=N!可能很大,这样Sum可能就要long型,或更大的空间。

2007-07-23 19:00
快速回复:请教一个编程题目的解法
数据加载中...
 
   



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

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