#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”。
解題思路:我們首先想到的是:移位思想。遇到…