数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 3176|回复: 1

计算n!

[复制链接]
发表于 2010-10-15 18:08 | 显示全部楼层 |阅读模式
我初学数论,遇到很多不会的问题,比如:
   
  使n!少于1000位的数字n的最大值是多少?为什么?(用程序实现。)
请高手指点一下,并说明有关理论依据。谢谢。
发表于 2010-10-17 11:25 | 显示全部楼层

计算n!

[这个贴子最后由luyuanhong在 2010/10/17 11:32am 第 3 次编辑]
下面引用由寂寞笑2010/10/15 06:08pm 发表的内容: 我初学数论,遇到很多不会的问题,比如: 使n!少于1000位的数字n的最大值是多少?为什么?(用程序实现。) 请高手指点一下,并说明有关理论依据。谢谢。
因为 n! 就是从 1,2,3,… 开始,一直连乘到 n ,所以,要求使得 n! 少于 1000 位 的数字 n 的最大值,只要从 1,2,3,… 开始连乘,直到 n! 的数值超过 10^999 就可以了。 在编程序实现时,要考虑到防止数值太大、发生溢出的问题,所以,应采用“取对数, 把连乘变成连加”的办法。 下面是用 Pascal 语言编写的程序: {$N+} var s:real; n:integer; begin s:=0; n:=0; while(s+ln(n+1)<999*ln(10))do begin n:=n+1; s:=s+ln(n); end; writeln(';n=';,n); end. 这个程序运算的结果,得到 n=449 。 事实上,有 449!≈3.8519305×10^997 ,450!≈1.7333687×10^1000 。 可见 449! 不到 10^999 ,而 450! 就超过 10^999 了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2025-6-30 14:03 , Processed in 0.085121 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表