输出将帅的所有合法位置 要求代码中只使用一个变量
用1-9的数字按照优先顺序来表示每个格点的位置
要求出A(将)、B(帅)所满足的合法位置 即AB不能在一条竖线上
循环遍历AB 81次 然后判断AB是否在一条竖线上 就可以得到所有的合法信息
两个嵌套循环即可
但是只允许使用一个变量?
按照两层循环的思想
固定一个点 A 然后再遍历九次B 判断AB是否在一条竖线上
遍历次数为num=81
我们可以用num/9 来固定一个A
num%9 来遍历循环B
遍历81 次 num--
如果 num/9 和num%9 除3的语数相同 则表明两点在同一条竖线上 不满足
int i=80;
while(i)
{
if( abs( i/9 - i%9)%3!=0)
{
cout<< (i/9 )+1<<' '<<(i%9)+1<<"\t";
}
if(i%9==0)
cout<<endl;
i--;
}
书上也有提到用结构体的方法~
定义一个结构体的变量
typedef struct s
{
int a;
int b;
};
然后对a b遍历