随笔分类 -  Math

摘要:给定一个十进制整数N,求出从1到N的所有整数中出现1的个数。给定一个整数N,那么N的阶乘N!末尾有多少个0? 阅读全文

posted @ 2013-04-16 21:18 月moon鸟 阅读(138) 评论(0) 推荐(0)

摘要:如果两个数a和b,a的所有真因数之和等于b,b的所有真因数之和等于a,则称a,b是一对亲和数。求50000以内的所有亲和数,真因数不包括本身。只有1和本身作为因子的数称作素数。求1000以内的所有素数,习惯上1不作为素数。我们把只包含因子2、3和5的数称为丑数。求按从小到大的顺序排列的第1500个丑数。习惯上我们把1当做第一个丑数。1、思路: 常规方法:对每个数i(从1到N)进行处理,处理的方法是用j(从1到i/2)进行取余,看是否为0。能整除的话,sum[i] += j。 伴随数组:从因子2开始处理,对于下标是2的倍数说明因子含有2;接下去处理因子3,对于下标是3的倍数说明因子含有3;依.. 阅读全文

posted @ 2013-04-16 21:05 月moon鸟 阅读(254) 评论(0) 推荐(0)

摘要:参考:剑指offer写一个函数,输入n, 求斐波那契数列的第n项。一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个n级的台阶总共有多少种跳法。我们可以用2×1的小矩形横着或竖着去覆盖更大的矩形。请问用8个2×1的小矩形横着或竖着无重复地覆盖一个2×8的大矩形,总共有多少种方法。1、思路: 不建议用递归,因为会重复计算。依次叠加往上计算,动态规划的思想。Fib 1 #include <stdio.h> 2 3 long long Fib(unsigned int n) 4 { 5 int result[2] = {0, 1}; 6 if 阅读全文

posted @ 2013-03-29 11:09 月moon鸟 阅读(262) 评论(0) 推荐(0)

摘要:输入一个整数,输出该数二进制表示中1的个数。附加题:判断一个数是否是2的幂。一个整数数组里除了两个数字以外,其他数字都出现两次。请找出只出现一次的数字,要求时间复杂度O(n),空间复杂度O(1)。写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/即加减乘除四则运算符号。1、思路: 常规方法:逐位和1做与运算,看是否为1。如果右移位,当符号位为1时,会陷入死循环(高位补1)。所以选择左移位,当标志位为0时说明所有位都移动完成。 巧妙方法:当n-1时,与n相比,最右边的1变为0,再右侧的0变为1。所以n&(n-1)不为0,则计数加1,有几个1就有几次循环。 判断2的幂:用二进 阅读全文

posted @ 2013-03-27 11:35 月moon鸟 阅读(242) 评论(0) 推荐(0)

导航