每一步中,如果马在(x,y)(x,y)(x,y)(x,y)(x,y)(x,y),你可以将它移动到 (x+1,y+2)(x+1,y+2)(x+1,y+2)(x+1,y+2)(x+1,y+2)(x+1,y+...x+2,y+1)(x+2,y+1)(x+2,y+1),(x+2,y−1(x+2,y−1)(x+2,y−1(x+2,y−1)(x+2,y-1(x+2,y−1),(x−2,y+1)(x−2,y+1)或(x−...2,y−1)(x−2,y−1)(x−2,y+1)(x−2,y+1)或(x−2,y−1)(x−2,y−1)(x-2,y+1)(x−2,y+1)或(x-2,y-1)(x−2,y−1)。...),而且下方的点都是在刚才所说的八边形的4层边上,所以可以发现将这些点作如下变换后可以将横坐标和y=x/2对应y=x/2对应y=x/2对应:
double(x-y-y)/4.0*2;
最后将上面这个值取反...同理可以推出y=x/2y=x/2y=x/2上方的点,满足关系y>x/2y>x/2y>x/2,在刚才所说的八边形的3层边上,最后推出
double(x-y-y)/3.0*2;
Code
#include