滴滴第一道xor,求大佬看一下通过率为什么只有30%
#include <iostream>
#define MAX 100000
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
//xor区间:xor=0的条件,a[i]=0;或者相邻的数相等
//如果有3个数,前两者异或与第三者异或得零
int main(int argc, char** argv) {
int n;
int a[MAX];
int sum;
int count=0;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
int i=0;
int j=0;
int sum2=0;
int sum1=0;
while(i<n)
{
sum2=a[i];
if(sum2==0)
{
count++;
i++;
}
else{
j=i+1;
while(j<n)
{
sum1=a[j-1]^a[j];
sum2=sum2^a[j];
if(sum2==0&&sum1==0)
{
count++;
j++;
printf("i%dj%d",i,j);
}
else
{
i=j;
break;
}
}
i++;
if(sum1!=0||sum2!=0)
i=j;
}
}
printf("%d",count);
return 0;
}
#滴滴#

查看7道真题和解析