// 马踏棋盘1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include<iostream>using namespace std;int a[5][5];int cnt = 0;void PRint() { for (int i = 0;i < 5;i++) { for (int j = 0;j < 5;j++) printf("%3d", a[i][j]); cout << endl; } cout << endl;}int isPass(int i,int j) { return ((i >= 0 && i < 5)&& (j >= 0 && j < 5)&& !a[i][j]);}void Path(int i, int j, int r) { if (isPass(i, j)) { if (r == 25) { a[i][j] = r; cnt++; printf("第%d种解:/n",cnt); print(); a[i][j] = 0; return; } a[i][j] = r; Path(i - 1, j + 2, r + 1); Path(i - 1, j - 2, r + 1); Path(i + 1, j + 2, r + 1); Path(i + 1, j - 2, r + 1); Path(i - 2, j + 1, r + 1); Path(i - 2, j - 1, r + 1); Path(i + 2, j + 1, r + 1); Path(i + 2, j - 1, r + 1); a[i][j] = 0; }}int main(){ for (int i = 0;i < 5;i++) for (int j = 0;j < 5;j++) a[i][j]=0; Path(0, 0, 1); cout << "共有"<<cnt <<"种解"<< endl; return 0;}
新闻热点
疑难解答