首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

微软面试有关问题之中国象棋将帅有关问题

2012-12-20 
微软面试问题之中国象棋将帅问题A、B二子被限制在己方3×3的格子(横向与纵向分别有三个可以运动到的位置)里

微软面试问题之中国象棋将帅问题

微软面试有关问题之中国象棋将帅有关问题

A、B二子被限制在己方3×3的格子(横向与纵向分别有三个可以运动到的位置)里运动。例如,在如上的表格里,A被正方形 {d10,f10,d8,f8}所包围,而B被正方形{d3, f3, d1, f1}包围。每一步,A、B分别可以横向或纵向移动一格,但不能沿对角线移动。另外,A不能面对B,也就是说,A和B不能处于同一纵向直线上(比如A在 d10的位置,那么B就不能在d1,d2以及d3)。

请写出一个能够生成A、B所有可能位置,并且在控制台上打印出来的C程序。要求在代码中只能使用一个变量。

方法一:

?

public void ChessDemo(){Byte i=81;for(;i>0;i--){if(i/9%3==i%9%3)continue ;System.out.println("A="+(i/9+1)+",B="+(i%9+1)+"\n");}}

?为什么这样能实现呢?不知原理

?

?

我的JAVA方法

public void ChessDemo(){for(int i=1;i<=9;i++)for(int j=1;j<=9;j++)if(i%3!=j%3){System.out.println("a= "+i+",b= "+j);}}

?却定义了两个变量。。

?

?

热点排行