小算法
_binary
这个作者很懒,什么都没留下…
展开
-
辗转相除法(欧几里得)求最大公约数和最小公倍数
循环求解: int gcd (int a, int b) { int temp; if (ab时,交换a和b temp = a; a = b; b = temp; } while (b>0) { temp = a % b; a = b; b = temp; } return a; } 递归qiu'jie原创 2014-11-09 18:06:41 · 610 阅读 · 0 评论 -
快速求幂
递归求解: int f_pow(int a, int n) { if (n == 0) return 1; if (n == 1) return a; int tmp = f_pow(a, n >> 1); int ret = tmp * tmp; if (n & 1) ret *= a; //位运算,判断n奇偶,奇数要再乘一次a return ret; } 循原创 2015-01-26 13:05:07 · 347 阅读 · 0 评论 -
素数筛选法
基本思想:用筛法求素数的基本思想是:把从1开始的、某一范围内的正整数从小到大顺序排列, 1不是素数,首先把它筛掉。剩下的数中选择最小的数是素数,然后去掉它的倍数。依次类推,直到筛子为空时结束。如有:1 2 3 4 5 6 7 8 9 1011 12 13 14 15 16 17 18 19 2021 22 23 24 25 26 27 28 29 301不是素数,去掉。剩下的数中2最小,是素数,去转载 2015-03-02 21:57:10 · 369 阅读 · 0 评论