挑战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!是多大呢?我不知道,因为不可能等到运... 2007-08-24
高精度求商 [附件] 编程目的 闲来无事,我看了一下存储,手机已用5872K,存储卡已用96756K。脑中冒出一个无聊的问题,大家都知道要珍惜手机存储容量,那么我的存储卡已用是手机已用的多少倍呢?拿来手头的科学计算器一算,结果是:16.47752044,明显不是精确结果。又用windows自带的计算器软件算,结果是16.477520435967302452316076294278,肯定还不是最终结果。于是我就无聊地想知道最精确的结果,自己手算是不可能的,我这么懒的人……于是就编了这么一个程序。 这个程序可以将两个整数相除以最简分数和小数形式给出结果。小数会判断是有尽小数还是循环小数,并指出循环节。可以保证精确到小数点后万位左右,我只测试了几组测试数据,我想不出循环节变态到小数点后一万位的测试数据,但是即便有,也只需修改程序开头的数组大小就能扩大精确度。读者请参考附带的源码自己修正。 知识回顾 两个有理数相除(除... 2007-08-24