一、问题说明

    国际象棋的棋盘为8*8的方格棋盘，现将“马”放在任意指定的方格中，按照“马”走棋的规则（与中国象棋规则一样，马走“日”字）将“马”进行移动。要求每个方格只能进入一次，最终使得“马”走遍棋盘64个方格，回到起点。

    编写代码，实现对棋盘的马踏棋盘操作，给定初始位置，用数字给出“马”移动的路径并格式化输出。

    必须实现的算法：分治法。

二、相关要求

    要求提交程序和实验报告，打包成“作业X-程序语言.zip”（如“作业4-c.zip”、“作业4-java.zip”，其中c/c++语言统一用“c”表示）提交。提交前把Debug, Release等编译文件删除，只保留代码源文件。

        程序：不限语言，但不得用封装好的算法函数直接求解；一般不得依赖非标准库（c++可以使用stl，不可使用boost库），特殊情况需在实验报告中予以说明。

        实验报告：解题思路；所实现算法的时间复杂度分析（结合程序统计关键步骤运行次数，以验证分析结果）；程序运行指导，包括程序编译说明、输入输出示例等。如果输入、输出信息较多，建议采用文件进行格式化输入、输出。

        一题多解：在实现基础要求之外，鼓励一题多解，可酌情加分。请在实验报告中进行分析说明。

    评分说明：程序和实验报告等重要，综合得到本题分数，评分要点如下

         程序：程序正确性（至少实现对n*n棋盘的处理）、注释完整性、关键函数的通用性、程序使用的方便性、边界处理等。

        实验报告：解题思路正确性与描述清晰、时间复杂度分析的正确性与完整性、运行指导的质量等。

        匿名：提交的所有内容保持匿名性，泄露个人信息将被扣分。

    抄袭与迟交：发现抄袭或雷同，抄袭者或雷同双方本次作业记0分。截止时间前可更新作业，包括一题多解；截止时间后不再接受一题多解。
