马踏棋盘问题
思路 : 使用回溯算法遍历强行算出来
描述 : 在找到结果后会直接退出 可以去掉exit语句可以找到所有符合条件的解
package hourse;import java.util.Arrays;public class Hourse {private static final int size = 6;public void walk(int x,int y,int t,int[][] qipan){if(x >= size || x < 0|| y >= size || y < 0){return;}if(qipan[x][y]==1 && t==size*size+1){for (int[] aQipan : qipan) {System.out.println(Arrays.toString(aQipan));}System.out.println();System.exit(0);}if(qipan[x][y]!=0){return;}qipan[x][y] = t;walk(x+2,y+1,t+1,qipan);walk(x+2,y-1,t+1,qipan);walk(x-2,y+1,t+1,qipan);walk(x-2,y-1,t+1,qipan);walk(x+1,y+2,t+1,qipan);walk(x+1,y-2,t+1,qipan);walk(x-1,y+2,t+1,qipan);walk(x-1,y-2,t+1,qipan);qipan[x][y] = 0;}public static void main(String[] args) {Hourse hourse = new Hourse();int[][] qipan = new int[size][size];hourse.walk(0,5,1,qipan);}}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!