2、在半个中国象棋棋盘上,马在左下角(1,1)处,马走日字...而且只能往右走...不能向左...可上可下...求从起点到(m,n)处有几种不同的走法(函数的递归调用)

/*
在半个中国象棋棋盘上,马在左下角(1,1)处,马走日字...
而且只能往右走...不能向左...可上可下...求从起点到(m, n)
处有几种不同的走法
*/
#include <stdio.h>
//棋盘的宽度和高度(半个)
#define W 9
#define H 5
#define LOW -1//下界
//棋盘(标记当前点是否被访问过)
static int chess[H][W];
//标记路径的条数
static int count;//置零
void ClearState()
{int i, j;for (i = 0; i<H; ++i){for (j = 0; j<W; ++j){chess[i][j] = 0;}}count = 0;
}//是否可以通过
int IsPass(int i, int j)
{return ((i>LOW && i<H) &&(j>LOW && j<W));
}//搜索路径(回溯算法)
void Path(int i, int j, int m, int n)
{//保证坐标未出界且未被访问if (IsPass(i, j)){//到达目标点if (i == m - 1 && j == n - 1){count++;return;}//未达到目标点, 继续搜索//标记当前点已被访问//chess[i][j] = 1;Path(i - 1, j + 2, m, n);//水平右上Path(i + 1, j + 2, m, n);//水平右下Path(i - 2, j + 1, m, n);//垂直右上Path(i + 2, j + 1, m, n);//垂直右下//标记当前点未被访问(其它方向的也需要遍历)//chess[i][j] = 0;}
}int main()
{int m, n;while (1) {printf("m n : ");scanf("%d %d", &m, &n);Path(0, 0, m, n);printf("共有%d种走法\n\n", count);ClearState();}return 0;
}

2010上机二 中国象棋马走日相关推荐

  1. 马走日程序Java_马走日什么意思

    中国象棋在中国有着三千多年的历史,在中国古代,象棋被列为士大夫们的修身之艺,属于琴棋书画四艺之一.现在则被视为是怡神益智的一种有益身心的活动. 中国象棋是由两人轮流走子,以"将死" ...

  2. 信息学奥赛一本通(1219:马走日)

    1219:马走日 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 12078     通过数: 6316 [题目描述] 马在中国象棋以日字形规则移动. 请编写一段程 ...

  3. Bailian4123 马走日【DFS】

    4123:马走日 总时间限制: 1000ms 内存限制: 1024kB 描述 马在中国象棋以日字形规则移动. 请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的 ...

  4. GDUT - 专题学习1 C - 马走日

    C - 马走日 题目 马在中国象棋以日字形规则移动. 请编写一段程序,给定 n×m 大小的棋盘,以及马的初始位置 (x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点. ...

  5. 马走日(DFS深搜)

    马走日 目录 马走日 题意描述:给多组数据,给棋盘的大小和马的初始位置,求有多少种方法让马走日全部走过棋盘,不能重复走棋盘的同一个点 解题思路:利用数组来对所有的棋盘上所有的点初始化表示未走过,把马的 ...

  6. 马走日的解法(dfs)

    马在中国象棋以日字形规则移动. 请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点. Input 第一行为整数T ...

  7. 马走日(深搜 C++)

    马走日 总时间限制: 1000ms 内存限制: 1024kB 描述 马在中国象棋以日字形规则移动. 请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点, ...

  8. 马走日 java实现

    马走日 问题描述: 在中国象棋里,马的走棋要遵循"马走日"的规则,在本题中,给定马的起始位置,以及一个目标位置,判定该马是否能够走到该位置,如果能走到,最少步数是多少.(假设棋盘上 ...

  9. 信息学奥赛一本通:1219.马走日

    信息学奥赛一本通:1219.马走日 1219:马走日 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 7406 通过数: 3863 [题目描述] 马在中国象棋以日字形规则移动. 请 ...

  10. 【简洁,易懂程式】C - 马走日

    [简洁,易懂程式]C - 马走日 题目: 马在中国象棋以日字形规则移动. 请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y), 要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历 ...

最新文章

  1. ipadpro+打开html文件,iPadPro日常基本功能的使用技巧汇总
  2. Spinner弹出框遮挡住显示框的解决办法
  3. Deep Exploit:结合机器学习的全自动渗透测试工具
  4. oracle数据表管理
  5. SAP CRM WebClient UI上文本是否可编辑,取决于哪些条件
  6. 微软服务器问题,微软服务器内存溢出问题 | 【韩涛博客】
  7. 按钮配置之自定义按钮使用(一)——JEPLUS软件快速开发平台
  8. 网络通信协议-TCP/IP模型实战
  9. 获取自动增涨列的表中添加完成后的数据
  10. [转载]Qt之模型/视图(自定义风格)_vortex_新浪博客
  11. selenium无界面chromedriver
  12. 计算机三级网络技术路由,2009计算机三级网络技术:如何上网高效率宽带路由优化技巧放送...
  13. 【老生谈算法】matlab实现模拟退火算法——模拟退火算法
  14. 翻译: 欧洲伽利略卫星-全球导航卫星系统GNSS
  15. 实用的数据可视化工具大集合
  16. 蓝桥杯_等差素数列_java
  17. 服务器双路cpu装什么系统,双路服务器CPU是什么意思?双路CPU是什么?
  18. 照片变老html源码,变老教程,利用ps把年轻人变成老年人效果
  19. Windows下如何打开CSV文件
  20. 服务器dns被劫持如何修复,电脑DNS被劫持如何解决?电脑DNS被劫持的解决方法

热门文章

  1. Windows Server 2012 R2 安装补丁KB2999226提示此更新不适合用于计算机
  2. 该内存不能为written或read的解决方案(比较全)
  3. 什么是域名备案?为什么要进行备案?备案后你将会获得下列益处
  4. 服务器备案新增网站,已经备案服务器 增加新域名
  5. ios系统获取udid
  6. 十、PWM脉宽调制信号的发生与控制
  7. CentOS7安装Hadoop-3.3.0集群
  8. 初中计算机软件课后反思,信息技术的教学反思
  9. 用python自动制作ppt第二讲——插入文字的两种方法和追加文字
  10. matlab逐步线性回归分析法,[转载]matlab 回归分析