洛谷【P1100】高低位交換
阿新 • • 發佈:2018-09-27
names problem code ++ 交換 pan fine lin return
二進制前置技能:https://www.cnblogs.com/AKMer/p/9698694.html
題目傳送門:https://www.luogu.org/problemnew/show/P1100
按題意模擬即可。
時間復雜度:\(O(logn)\)
空間復雜度:\(O(logn)\)
代碼如下:
#include <cstdio> using namespace std; #define ui unsigned int ui n; bool bo[33]; ui read() { ui x=0,f=1;char ch=getchar(); for(;ch<‘0‘||ch>‘9‘;ch=getchar())if(ch==‘-‘)f=-1; for(;ch>=‘0‘&&ch<=‘9‘;ch=getchar())x=x*10+ch-‘0‘; return x*f; } int main() { n=read(); for(int i=0;i<33;i++) bo[i]=n&1,n>>=1;//求二進制 for(int i=15;~i;i--) n=n<<1|bo[i]; for(int i=31;i>15;i--) n=n<<1|bo[i];//交換 printf("%u\n",n); return 0; }
洛谷【P1100】高低位交換