骚操作
tlewa
不疯魔,不成活
展开
-
尾递归
什么是尾递归什么是尾递归呢?(tail recursion), 顾名思议,就是一种“不一样的”递归,说到它的不一样,就得先说说一般的递归。对于一般的递归,比如下面的求阶乘,教科书上会告诉我们,如果这个函数调用的深度太深,很容易会有爆栈的危险。// 先不考虑溢出问题int func(int n){ if (n <= 1) return 1; return n * fu...转载 2019-04-25 22:45:19 · 1628 阅读 · 0 评论 -
位运算:基础篇
各种位运算的常见用法 1. and(与)运算 一个数 and 1的结果就是取二进制的最末位,可用于判断奇偶性 2. or(或)运算 一个数 or 1的结果就是把二进制末尾变成1,若想把一个数二进制末尾变成0,则先 or 1再减一就可以了,即变为最接近的偶数。 3. xor(异或)运算 异或可以这样定义:0和1异或0都不变,异或1则取反。异或的逆运算是其本身,即(a ...转载 2019-06-26 21:52:46 · 156 阅读 · 0 评论 -
位运算:进阶篇(1)
二进制中的1有奇数个还是偶数个//32位的情况int x;scanf("%d", &x);x ^= x >> 1;x ^= x >> 2;x ^= x >> 4;x ^= x >> 8;x ^= x >> 16;printf("%d", x&1);就比如说如果x=1314520,第一次的异或操作的结果...转载 2019-07-12 17:43:15 · 322 阅读 · 0 评论