P3908 数列之异或,86分,帮个忙
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long a;
cin>>a;
long long d;
d=a;
if(a==1)
{
cout<<1;
return 0;
}
int c=0;
vector<int> b;
while(a>0)
{
b.push_back(a%2);
a/=2;
c++;
}
long long ans=b[0]^b[1];
for(int A=1;A<=c;A++)
{
if(b[A]==0)
{
continue;
}
else
{
if(d%2==0)
{
ans+=pow(2,A);
}
}
}
cout<<ans;
}
感谢!