#include <iostream>usingnamespacestd;#define SWAP(a, b)
{char tempbuf[10]; memcpy(tempbuf, &a, sizeof(a)); memcpy(&a, &b, sizeof(b)); memcpy(&b, tempbuf, sizeof(b));
}int main()
{int a = 2;int b = 10;SWAP(a, b);cout<<a<<endl;cout<<b<<endl;return0;
}
不使用if,?,switch或者其他判断语句比较两个变量的大小?
#include <iostream>usingnamespacestd;bool fun(int a, int b)
{return a > b;
}int max(int a, int b)
{bool flag = fun(a, b);return flag * a + (1 - flag) * b;//巧妙
}int main()
{return0;
}
#include <iostream>usingnamespacestd;int max(int a, int b)
{return ((a + b) + abs(a - b)) / 2;
}int main()
{int a = 2;int b = 5;int n = max(a, b);cout<<n<<endl;return0;
}
利用位运算实现加法?
#include <iostream>usingnamespacestd;int Add(int a, int b)
{if(b == 0){return a;}int sum, carry;sum = a ^ b;carry = (a & b) << 1;return Add(sum, carry);
}int main()
{int a = 10;int b = 245;cout<<Add(a, b)<<endl;return0;
}
今天看题的时候,遇到一个替换空格的题目,分析一下哈。
题目要求:把字符串中的每个空格替换成“%20”。例如输入“we are happy”,则输出“we%20are%20happy”。
解题思路:我们首先想到的是:移位思想。遇到…