#include #include #define MAX 50000 main() { int a,b; int *ptr = malloc( (MAX+1) * sizeof(int) ); int i; int *ip = ptr; *ip = 0; for(i=1,ip++;i<=MAX;i++,ip++) *ip = *(ip-1) ^ i; int x = 0; while(scanf("%d %d", &a, &b)!=EOF) { x++; if(x>2)break; int i; int ans = *(ptr+a); for(i=a+1,ip=ptr+a+1;i<=b;i++,ip++) ans = ans ^ *ip; printf("%d\n", ans); } free(ptr); }
重新排版
#include <stdio.h> #include <stdlib.h> #define MAX 50000 main() { int a,b; int *ptr = malloc( (MAX+1) * sizeof(int) ); int i; int *ip = ptr; *ip = 0; for(i=1,ip++;i<=MAX;i++,ip++) *ip = *(ip-1) ^ i; int x = 0; while(scanf("%d %d", &a, &b)!=EOF) { x++; if(x>2)break; int i; int ans = *(ptr+a); for(i=a+1,ip=ptr+a+1;i<=b;i++,ip++) ans = ans ^ *ip; printf("%d\n", ans); } free(ptr); }
前面丟錯版本了,不好意思。
#include <stdio.h> #include <stdlib.h> #define MAX 50000 main() { int a,b; int *ptr = malloc( (MAX+1) * sizeof(int) ); int i; int *ip = ptr; *ip = 0; for(i=1,ip++;i<=MAX;i++,ip++) *ip = *(ip-1) ^ i; while(scanf("%d %d", &a, &b)!=EOF) { int j; int *jp; int ans = *(ptr+a); for(j=a+1,jp=ptr+a+1;j<=b;j++,jp++) ans = ans ^ *jp; printf("%d\n", ans); } free(ptr); }