杜郎俊赏 - dujun.io

挑战Best Calc之超级阶乘

编程目的

诺基亚自带的计算器,功能低级地弱智,所以网上流传着不少计算器软件。其中Best Calc(百事计算器)是很不错的一款,基本模拟了市面上常见的科学计算器真机。不过反过来说,它很好地模拟了其功能,也很遗憾地接受了其硬件缺憾。这次我想将Best Calc的阶乘运算功能,用电脑发挥到极致。

知识回顾

一个整数的阶乘是,从1×2×3×4×……一直乘到其本身之积。并且默认0的阶乘为1,1的阶乘为1。

技术说明

科学计算器真机的阶乘上限是 69!,以科学计数法表示,可显示 8 位数字。Best Calc的阶乘上限是 99!,以科学技术发表示,可显示 11 位数字。

本程序理论阶乘上限是 214769! , 显示全部数字,并且保存至 result.txt 文件中,可在当前目录找到。为了视野更清晰,末尾的0(4个为一组),只显示个数。

顺便提一下,214769!是多大呢?我不知道,因为不可能等到运算结果出来,因为10000!的结果,已经达到35660位数字。所以214769!的结果就算让电脑跑出来,你也不会有耐心看那个结果的。当然如果一定要算更大的数字,只要把源程序的数组改大,并且把long用__int64代替。

演示

附件

[附件]

日期:2007-08-24