列出所有的可能组合:
1将 | 2 | 3 |
4 | 5 | 6 |
7 | 8 | 9 |
1 | 2 | 3 |
4 | 5 | 6 |
7 | 8 | 9帅 |
下面是我自己写的代码:采用移位操作。int的后8位中,前4位表示帅的1---9,后4位表示将的1---9.
#include<iostream>
using namespace std;
int main(int argc,char *argv[])
{
int i=0;
i=i|0x99;
while ((i&0xf)>=1)
{
while (((i&0xf0)>>4)>=1)
{
if (((i&0xf)%3)!=(((i&0xf0)>>4)%3))
{
cout<<"A="<<(i&0xf)<<","<<"B="<<((i&0xf0)>>4)<<" ";
}
i=i-16;
}
cout<<endl;
i=i-1;
i=i|0x90;
}
cout<<endl;
return 0;
}
输出结果如下:
A=9,B=8 A=9,B=7 A=9,B=5 A=9,B=4 A=9,B=2 A=9,B=1
A=8,B=9 A=8,B=7 A=8,B=6 A=8,B=4 A=8,B=3 A=8,B=1
A=7,B=9 A=7,B=8 A=7,B=6 A=7,B=5 A=7,B=3 A=7,B=2
A=6,B=8 A=6,B=7 A=6,B=5 A=6,B=4 A=6,B=2 A=6,B=1
A=5,B=9 A=5,B=7 A=5,B=6 A=5,B=4 A=5,B=3 A=5,B=1
A=4,B=9 A=4,B=8 A=4,B=6 A=4,B=5 A=4,B=3 A=4,B=2
A=3,B=8 A=3,B=7 A=3,B=5 A=3,B=4 A=3,B=2 A=3,B=1
A=2,B=9 A=2,B=7 A=2,B=6 A=2,B=4 A=2,B=3 A=2,B=1
A=1,B=9 A=1,B=8 A=1,B=6 A=1,B=5 A=1,B=3 A=1,B=2