2015上机二 国际象棋跳马5*5

来源:互联网 发布:搭建数据分析平台 编辑:程序博客网 时间:2024/05/22 05:25


// 马踏棋盘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;}


0 0
原创粉丝点击