2010上机二 中国象棋马走日
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上机二 中国象棋马走日相关推荐
- 马走日程序Java_马走日什么意思
中国象棋在中国有着三千多年的历史,在中国古代,象棋被列为士大夫们的修身之艺,属于琴棋书画四艺之一.现在则被视为是怡神益智的一种有益身心的活动. 中国象棋是由两人轮流走子,以"将死" ...
- 信息学奥赛一本通(1219:马走日)
1219:马走日 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 12078 通过数: 6316 [题目描述] 马在中国象棋以日字形规则移动. 请编写一段程 ...
- Bailian4123 马走日【DFS】
4123:马走日 总时间限制: 1000ms 内存限制: 1024kB 描述 马在中国象棋以日字形规则移动. 请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的 ...
- GDUT - 专题学习1 C - 马走日
C - 马走日 题目 马在中国象棋以日字形规则移动. 请编写一段程序,给定 n×m 大小的棋盘,以及马的初始位置 (x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点. ...
- 马走日(DFS深搜)
马走日 目录 马走日 题意描述:给多组数据,给棋盘的大小和马的初始位置,求有多少种方法让马走日全部走过棋盘,不能重复走棋盘的同一个点 解题思路:利用数组来对所有的棋盘上所有的点初始化表示未走过,把马的 ...
- 马走日的解法(dfs)
马在中国象棋以日字形规则移动. 请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点. Input 第一行为整数T ...
- 马走日(深搜 C++)
马走日 总时间限制: 1000ms 内存限制: 1024kB 描述 马在中国象棋以日字形规则移动. 请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点, ...
- 马走日 java实现
马走日 问题描述: 在中国象棋里,马的走棋要遵循"马走日"的规则,在本题中,给定马的起始位置,以及一个目标位置,判定该马是否能够走到该位置,如果能走到,最少步数是多少.(假设棋盘上 ...
- 信息学奥赛一本通:1219.马走日
信息学奥赛一本通:1219.马走日 1219:马走日 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 7406 通过数: 3863 [题目描述] 马在中国象棋以日字形规则移动. 请 ...
- 【简洁,易懂程式】C - 马走日
[简洁,易懂程式]C - 马走日 题目: 马在中国象棋以日字形规则移动. 请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y), 要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历 ...
最新文章
- ipadpro+打开html文件,iPadPro日常基本功能的使用技巧汇总
- Spinner弹出框遮挡住显示框的解决办法
- Deep Exploit:结合机器学习的全自动渗透测试工具
- oracle数据表管理
- SAP CRM WebClient UI上文本是否可编辑,取决于哪些条件
- 微软服务器问题,微软服务器内存溢出问题 | 【韩涛博客】
- 按钮配置之自定义按钮使用(一)——JEPLUS软件快速开发平台
- 网络通信协议-TCP/IP模型实战
- 获取自动增涨列的表中添加完成后的数据
- [转载]Qt之模型/视图(自定义风格)_vortex_新浪博客
- selenium无界面chromedriver
- 计算机三级网络技术路由,2009计算机三级网络技术:如何上网高效率宽带路由优化技巧放送...
- 【老生谈算法】matlab实现模拟退火算法——模拟退火算法
- 翻译: 欧洲伽利略卫星-全球导航卫星系统GNSS
- 实用的数据可视化工具大集合
- 蓝桥杯_等差素数列_java
- 服务器双路cpu装什么系统,双路服务器CPU是什么意思?双路CPU是什么?
- 照片变老html源码,变老教程,利用ps把年轻人变成老年人效果
- Windows下如何打开CSV文件
- 服务器dns被劫持如何修复,电脑DNS被劫持如何解决?电脑DNS被劫持的解决方法
热门文章
- Windows Server 2012 R2 安装补丁KB2999226提示此更新不适合用于计算机
- 该内存不能为written或read的解决方案(比较全)
- 什么是域名备案?为什么要进行备案?备案后你将会获得下列益处
- 服务器备案新增网站,已经备案服务器 增加新域名
- ios系统获取udid
- 十、PWM脉宽调制信号的发生与控制
- CentOS7安装Hadoop-3.3.0集群
- 初中计算机软件课后反思,信息技术的教学反思
- 用python自动制作ppt第二讲——插入文字的两种方法和追加文字
- matlab逐步线性回归分析法,[转载]matlab 回归分析