判断n的二进制表示中第i位是0还是1
n>>i&1
判断两个串x和y其中一个y能否通过另一个循环移位得到,
可以将y串伸长,y+=y, 判断伸长后的y串中是否包含x串即可
#include<iostream>
#include<string>
using namespace std;
int a,b;
int main()
{
while(cin>>a>>b)
{
string x,y;
for(int i=15;i>=0;i--)
{
x+=to_string(a>>i&1);
y+=to_string(b>>i&1);
}
y+=y;
if(y.find(x)!= -1) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
}