首先,^最小是1,怎么样才能是1呢,一定是两个数字仅仅1位不一样,比如(1,0) 、(10,11);但是未必所以都能满足1,不过即使不能满足1,如10,100也是相对于(11,110)而言比较小的,所以一位不同这一点保留,另外如果a^b=c,那么c^b=a,原因的话,^是相同为0,不同位1,假设第一个数字是(a+c),第二个数字是(b+c),这两个数字相同的部分是c,^之后a和b的部分都会1,其他变成0,其实就是a+b,那如果(a+c)^(a+b)就等于(b+c)。 其次,这是一个排列,所以数字不能一样 所以,我们可以设a0=0,从a1开始循环,里面套一个循环:从最低一位开始,把第一位变成1,...