码迷,mamicode.com
首页 >  
搜索关键字:c语言 交换变量 异或 不创建临时变量    ( 3515个结果
zoj3870Team Formation
//将其从小到大排序 //对于每一个数,其0点位为其前面数的最高位,那么它们的异或一定大于它们两个的值 #include #include #include #include using namespace std ; const int maxn = 100010; long long  map[40]; int a[maxn] ; long long solve(int m...
分类:其他好文   时间:2015-05-04 18:14:01    阅读次数:127
剑指Offer解题报告(Java版)——不用加减乘除做加法 47
引言 一般这种不能用四则运算的题都只有用位运算来做,目的是加强大家对计算机计算的理解,真是有点扯淡呢 解决问题 首先我们得思考计算机是怎样做加法的呢,比如3加4,如果转换成二进制是0011和0100,加起来是7,也就是0111,相当于是两个二进制的异或运算 但是我们再举一个例子就是4加4,会发现,两...
分类:编程语言   时间:2015-05-03 20:32:22    阅读次数:154
关于C语言中的位运算符的学习即应用
一.运算符的种类和运算规则: & 与:全1则1,有0则0 | 或:有1则1,全0则0 ^ 异或:相同为0,不同为1 ~ 取反:~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0 >右移:将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,高位补0二.各种位运...
分类:编程语言   时间:2015-05-03 20:20:10    阅读次数:176
变量交换
变量交换交换变量有很多种方法,一般分为两类,借助第三个变量和不借助第三个变量两种方式.对于ACMer 来说,下面的代码无疑是最优的。1 int main()2 {3 int a , b;4 cin >> a >> b;5 cout 2 3 int main() 4 { 5...
分类:其他好文   时间:2015-05-03 11:53:18    阅读次数:153
(数组)只出现一次的数
题目:1、给一数组,所有的数都出现了两次,只有一个数出现了一次,求这个数。2、给一数组,所有的数都出现了两次,只有两个数出现了一次, 求这两个数。思路:位运算1、将数组里所有的数都做异或操作,因为相同的数异或之后就等于0,所以结果就是只出现一次的那个数。2、同样将数组里所有的数做异或操作,相同的数异...
分类:编程语言   时间:2015-05-03 11:50:33    阅读次数:141
数组中只出现一次的数字 40
分析问题 任何一个数字异或它自己都等于0,通过这个思想遍历数组,用一个result累计异或操作,如果遇到某一个数两次,必定消除了异或操作,换句话说就是如果我们从头依次异或数组中的每一个数字,那么最终的结果应该是那个只出现一次的数字 要想说的更明白一点不如举个例子 实例 比如int[] array={...
分类:编程语言   时间:2015-05-02 18:01:33    阅读次数:198
按位与,按位或,按位异或,左移右移运算符
按位与运算符(&)参加运算的两个数据,按二进制位进行“与”运算。运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1; 即:两位同时为“1”,结果才为“1”,否则为0例如:3&5 即 0000 0011 & 0000 0101 = 0000 0001 因此,3&5的值得1。另,负数按补码形...
分类:其他好文   时间:2015-05-02 11:09:39    阅读次数:102
thttpd的定时器
运用了static函数实现文件封装提升变量访问效率的关键字register,该关键字暗示该变量可能被频繁访问,如果可能,请将值存放在寄存器中内存集中管理,每个节点在取消后并没有立即释放内存,而是调用cleanup时统一释放定时器的hash函数是异或结果求余生成keystatic unsigned ....
分类:Web程序   时间:2015-05-01 13:20:20    阅读次数:141
一个整型数组里除了一个或者两个或者三个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)
粗糙的给出了分析,最近比较累,以后会改进的。题目中包括三个小的问题,由简单到复杂:1,如果只有一个出现一次,考察到异或的性质,就是如果同一个数字和自己异或的活结果为零,那么循环遍历一遍数组,将数组中的元素全部做异或运算,那么出现两次的数字全部异或掉了,得到的结果就是只出现一次的那个数字。2,如果有两...
分类:编程语言   时间:2015-05-01 10:37:06    阅读次数:186
ZOJ3870 Team Formation
1 /** 2 Author: Oliver 3 ProblemId: ZOJ3870 Team Formation 4 */ 5 /* 6 思路 7 1.异或运算,使用^会爆,想到二进制; 8 2.我们可以试着从前往后模拟一位一位的^那么只要当前位结果变大便是; 9 3.一般我们如何利用二进制呢....
分类:其他好文   时间:2015-04-29 23:11:05    阅读次数:175
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!