老李飞刀

人生最重要的不是握一手好牌,而是把坏牌打好

导航

统计

公告

1000! 有几位和具体的值 [ C# 版 ]

A. 1000! 有几位,为什么?

先上代码,一看就明白

            int n = 1000;
            double sum = 0;
            for (int i = 1; i <= n; i++)            
            {

                sum = sum + Math.Log10(i);
            }
            Console.WriteLine("The '1000! has %{0}'s numbers.\n", (int)sum + 1);


原理说明

如: 1234=1.234*10^3

再引用对数就可以简单的得到数字的位数

Log10(a*10^x) = log10(a)+x

再计算1000!的结果位数

log10(1000!) = log10(1000*999*…2*1)=log10(1000)+log(999)+…+log(1)


B. 1000! 的具体的值

2586 这是一个很大的数了,通过一般的办法是无数计算获取的。

需要使用大数乘法来完成计算,才能正常得到如下结果。

具体的思路是把数字,转换成字符串,再对字符串进行乘法计算,得出结果。

代码见: http://wenku.baidu.com/view/5623fcc14028915f804dc218.html

 

1000! 共 2586 位, 见图。那是相当的壮观呀!

image

 


External Link

posted on 2011-09-06 18:55 老李飞刀 阅读(24) 评论(0) 编辑 收藏