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.
求懂数据的证明下啊啊 展开
我通过观察的结果是,1^2^3^..^n
当n%4 == 1,结果为1
当n%4 == 2,结果是n+1
当n%4 == 3,结果为0
当n%4 == 0,结果为n.
求懂数据的证明下啊啊 展开
7个回答
展开全部
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
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
展开全部
就是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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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);
}
//#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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的猜想是正确的
可以数学归纳证明
假设该结论对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
可以数学归纳证明
假设该结论对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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询