一题目
原题题号:
19
题目:
求1^2^3^4^......^100的结果(^表示异或运算符)
A 0 B 1 C 10 D 100
答案:
D
二 程序验证:
{注:编译平台:
os:
Linux(Ultimate_Edition 4.2 (trusty))
gcc:
4.8 (x86_64-linux-gnu)
}
程序:
#include <stdio.h>
int main(int argc, char **argv)
{
int i = 2;
int r = 1;
for(; i < 101;i++){
r ^= i;
}
printf("result of 1^2^3^...^100=%d\n",r);
return 0;
}
结果:
三 解析
i与(i-1)相抑或,当i为正奇数时,结果为1;
由于抑或具有结合律,我门将1^2^3^4^......^100改成
1^(2^3)^(4^5)......^(98^99)^100
=1^(1)^(1)^......^(1)^100
【共49个(1)】
又因为 1^1=0; 0^0=0
故原式=1^1^1^1^…………1^100【共50个1】=0^0^0^……^0^100[共25个0]=0^100=100