滴滴第一道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; }
#滴滴#