1xor2xor...xor1000怎么算?xor就是^,异或的意思 30

有没一步到位的算法?我逐个输出发现还是挺有规律的,就是不会证明我通过观察的结果是,1^2^3^..^n当n%4==1,结果为1当n%4==2,结果是n+1当n%4==3,... 有没一步到位的算法?我逐个输出发现还是挺有规律的,就是不会证明
我通过观察的结果是,1^2^3^..^n
当n%4 == 1,结果为1
当n%4 == 2,结果是n+1
当n%4 == 3,结果为0
当n%4 == 0,结果为n.

求懂数据的证明下啊啊
展开
 我来答
Mis_丫
2013-11-14 · TA获得超过374个赞
知道小有建树答主
回答量:272
采纳率:100%
帮助的人:230万
展开全部
1xor2xor3结果是0

1xor2xor...xor7结果是0
1xor2xor...xor15结果是0
1xor2xor...xor511结果是0

二进制表示3就是11,7就是111,15就是1111,511就是111111111
分段来看
1xor2xor3其实就是01^10^11
1xor2xor...xor7其实就是4xor5xor...xor7(前面是0),就是100^101^110^111 = 0
。。。
这题要算到1000,还没想到特别好的办法
我的方法是

1xor2xor...xor1000就是1xor2xor...xor1023xor1001xor102xor1003...xor1023
就是1001xor102xor1003...xor1023
qmg1023
2013-11-14 · TA获得超过888个赞
知道小有建树答主
回答量:804
采纳率:0%
帮助的人:907万
展开全部

就是1000


代码:



#include <stdio.h>

/*1xor2xor...xor1000*/

int main()
{

int i,j=1;

for( i=2;i<=1000;++i)
j = j ^ i;

printf("%d.\n",j);
}

 


我用perl也算了一下,在一个算式里面:

$str = "1";

for(2..1000)
{
 $str .="^ $_";
}

#print $str;

print eval $str;

结果也是1000

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2013-11-16 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6660万
展开全部
1000。下面代码可验证——
//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"//
void main(void){
int i,rst;
for(rst=1,i=2;i<1001;rst^=i++);
printf("The result is %d\n",rst);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友326401dda
2020-04-03
知道答主
回答量:1
采纳率:0%
帮助的人:634
展开全部
你的猜想是正确的
可以数学归纳证明
假设该结论对n<=k成立,
考虑n=k+1时,
若k余0,则(k+1)^K=1
若k余1,则(k+1)^1=k+2
若k余2,则(k+1)^(K+1)=O
若k余3,则(k+1)^O=K+1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小铭小名叫小铭
2013-11-14
知道答主
回答量:4
采纳率:0%
帮助的人:5641
展开全部
你改成二进制试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式