码迷,mamicode.com
首页 >  
搜索关键字:c语言 交换变量 异或 不创建临时变量    ( 3515个结果
使用异或交换数据值的原理
大家都知道,假如有a,b两个整型数,我们可以用 a^=b; b^=a; a^=b; 来交换a,b的值,在这里我说说其中的原理: ^ 在 C 里面是按位异或操作符,相同的话异或的结果就是 0,不同的话就是 1。举个例子,比如 a 表示十进制的 5,b 表示十进制的 12,按位异或结果就是: a = 0101   (5 的二进制表示) b = 1100   (12 的二进制表...
分类:其他好文   时间:2014-09-22 14:10:22    阅读次数:203
Python、C++中编写函数以及不使用临时变量交换两变量值的比较
在C++中,交换两变量的值一般第一反应都会是如下的代码: { temp=a; a=b; b=temp } 但是题目要求不允许使用临时变量temp呢?可能就需要想一会了。但也有解决办法: { b=a+b; a=b-a; b=b-a; } 这种做法在a和b数值较小的情况下是对的,但是a+b如果很大则会溢出,所以也不是最优的解法。最好的方法是使用异或: { a ^= b...
分类:编程语言   时间:2014-09-21 17:10:00    阅读次数:330
Codeforces Round #267 (Div. 2)
Codeforces Round #267 (Div. 2) A:签到题,直接for一遍 B:取异或就是不同的数,然后bitcount一下判断即可 C:dp,dp[i]表示到i的最大值,然后对取与不取当前位置进行转移即可,要先把前缀和预处理出来 D:先利用map,把字符串hash掉,然后建图,现场在做的时候是直接记忆化搜索,不过这样处理不了环的情况,果断fst了,后来换了下...
分类:其他好文   时间:2014-09-19 12:07:15    阅读次数:196
asp.net运算符之逻辑运算符以及其他运算符
逻辑(布尔型)运算符用于对boolean型的结果的表达式进行运算,运算的结果都是boolean型。其运算结果如下所示:运算符 运算 例子 结果 & AND(与) false&true false | OR(或) false|true true ^ XOR(异或) false^true true ! ...
分类:Web程序   时间:2014-09-18 22:11:14    阅读次数:233
将a、b的值进行交换,并且不使用任何中间变量
方法1:用异或语句a = a^b;b = a^b;a = a^b;注:按位异或运算符^是双目运算符,其功能是参与运算的两数各对应的二进制位相异或,当对应的二进制相异时,结果为1。参与运算数仍以补码形式出现。方法2:a = a+b;b = a-b;a = a-b;如果a、b都是比较大的两个数,a=a+...
分类:其他好文   时间:2014-09-17 18:31:02    阅读次数:183
HDU5014Number Sequence(贪心)
题目链接 题目大意: 给出n,然后给出一个数字串,长度为n + 1, 范围在[0, n - 1].然后要求你找出另外一个序列B,满足上述的要求,并且使得t = A0^B0 + Ai + 1 ^ Bi + 1 + ... + An ^ Bn 最大。 解题思路: 对于一个数字进行异或,要求结果最大的话,那么取这个数字的二进制互补数字是最好的情况,并且可以发现每次找到一个数字和对应的互补...
分类:其他好文   时间:2014-09-17 12:14:02    阅读次数:148
HDU 3397——Sequence operation(线段树,区间染色+区间异或+区间合并)
Sequence operation Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 6270    Accepted Submission(s): 1862 Problem Description lxhgww...
分类:其他好文   时间:2014-09-17 10:21:32    阅读次数:295
hdu5014 Number Sequence(异或运算)
题目链接:...
分类:其他好文   时间:2014-09-16 23:49:31    阅读次数:503
2014 网选 5011 Game(Nim游戏,数学题)
/* 题意:Nim游戏! 思路:通过异或,判断将n个数表示成二进制的形式之后,是否对应位的数字1 的个数是偶数! */ #includeusing namespace std;int main(){ int n, x, s; while(cin>>n){ s=...
分类:其他好文   时间:2014-09-16 21:46:11    阅读次数:219
找出数组中只出现一次的数
这个题目有三种变形。第一种,一个数组中所有数都出现了两次,只有一个数出现了一次,求这个数。这个题比较简单,只要知道数字间异或的特性,就可以很容易的得出答案。int find_num_appear_once(int *data, int length){ if(data==NULL || len...
分类:其他好文   时间:2014-09-16 18:56:40    阅读次数:282
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!