求100!的精确值
摘要:
初看此题觉得用个递归或循环就能解决这个问题,显然自己功力不够深厚。细想才知道这个数已经超过int或long型的表示范围了。这个问题遇到后直接先上网查了下自己也没怎么想。现在总结一下: 1.先算出阶乘结果的位数。这个利用log函数,可以将n!表示成10的次幂,即n!=10^M(10的M次方),不小于M的整数就是结果的位数,这里M为小数,如果M=1.345,那么结果位数为2.怎么算来的呢。就是对n!=10^M取对数得:M=log10(n!)=log10(1)+log10(2)+...+log10(n); 2.算出位数后,建立一个数组,用此数组来装结果的每一位数。比如下标0的存个位上的数字,... 阅读全文
posted @ 2012-10-20 16:09 Mr_李 阅读(684) 评论(6) 推荐(0)
浙公网安备 33010602011771号