算法
懒懒的唐
这个作者很懒,什么都没留下…
展开
-
幂和阶乘的计算注意点
幂和阶乘的计算注意点 在计算整数型的数值时,若计算用到幂或者阶乘,此时应该注意,若递归或循环调用时尽量使用除法(/),而避免使用乘法(*)。 因为使用乘法若检测数值过大则可能会造成数值溢出而导致结果错误。 例如:给定一个整数 n,返回 n! 结果尾数中零的数量。 int result = 0; int temp = 5; while (temp <= n){ result += n/temp; temp = temp *原创 2020-08-07 10:05:10 · 897 阅读 · 0 评论 -
2的次数幂判断
判断一个数是不是2的整次幂 使用 n & (n - 1) == 0可以判断n是不是2的整次幂。 其实是运用了为运算 以下表示1 - 8的二进制: 1 : 1 2 : 10 3 : 11 4 : 100 5 : 101 6 : 110 7 : 111 8 : 1000 可以发现 2 & 1 = 0;4 & 3 = 0;8 & 7 = 0;所以可以用n & (n - 1)是否等于0来判断n是不是2的整次幂 ...原创 2020-08-06 15:02:44 · 680 阅读 · 0 评论 -
斐波那契函数相关算法
最近在看算法,发现算法中有一类的可以用斐波那契函数去解决。 解释一些斐波那契函数:斐波那契函数是一个从第三项开始,每一项等于前俩项之和的一个特殊的函数。又称黄金分割数列。 例如:1,2,3,5,8,13,21,。… 显然这是一个线性递推数列。 先说一说这类型的算法吧。《少年班》相信大家应该看过吧,其中在招王大法的时候的测试问题就是一个典型的使用斐波那契函数去解决的问题; 一个人上楼梯,有n层阶梯,一次只能上1层或2层,请问有多少种算法? 这题乍一看好像与斐波那契函数没什么关系,但是我们仔细分析一下, 当n=原创 2020-07-28 10:05:48 · 1075 阅读 · 0 评论