P5657 题解
题目传送门
思路
格雷码最大的特点是,对于
这种运算可以用看作是异或运算,故
注意事项
AC CODE
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
scanf("%d",&n);
unsigned long long k;//注意数据范围
scanf("%llu",&k);
k^=k>>1;//转为格雷码
while(n){
printf("%llu",(k>>(n-1))&1);//输出二进制
--n;//转到下一位
}
printf("\n");
return 0;
}