2012年10月20日

求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)

2012年10月19日

struct与union内存大小计算

摘要: 我们知道union是内存共享机制,在确定内存大小之前,内存对齐方式是选择union成员中字节最大的那个,然后根据对齐大小分配对齐每个成员算出分配的空间,最后实际分配的空间要是对齐方式字节最大的那个的整数倍; struct也是同样的分配方式,先算出对齐大小,对齐大小也取决于struct成员中字节最大的那个;然后根据每个成员的对齐大小对齐每个成员算出分配的空间;最后算出struct实际分配的空间,满足struct对齐大小的整数倍。 这里面如果struct包括union类型的成员时,对齐大小也要考虑到union中的对齐大小,即也要与union中的对齐大小作比较。比如:union DATE{ ... 阅读全文

posted @ 2012-10-19 23:00 Mr_李 阅读(467) 评论(2) 推荐(0)

2011年7月26日

java mysql

摘要: Class.forName(DBDRIVER);问题是java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver;找了半天发再DBDRIVER有两种赋值:老的是(org.git.mm.mysql.Driver); 新的是(com.mysql.jdbc.Driver)老的不行就用新的试试。两个总有一个可以。 阅读全文

posted @ 2011-07-26 16:26 Mr_李 阅读(157) 评论(0) 推荐(0)

导航