马的走法C语言算法半张中国象棋棋盘,即5×9棋盘,左上角记为A(1,1),求从A点的马,只能向右行走,走到点B(m,n)的走法一共有多少种.

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/07 16:33:08

马的走法C语言算法半张中国象棋棋盘,即5×9棋盘,左上角记为A(1,1),求从A点的马,只能向右行走,走到点B(m,n)的走法一共有多少种.
马的走法C语言算法
半张中国象棋棋盘,即5×9棋盘,左上角记为A(1,1),求从A点的马,只能向右行走,走到点B(m,n)的走法一共有多少种.

马的走法C语言算法半张中国象棋棋盘,即5×9棋盘,左上角记为A(1,1),求从A点的马,只能向右行走,走到点B(m,n)的走法一共有多少种.
#include
/*
* 求(x1,y1)向右走到(y1,y2)可行的走法总数
*/
int getWays(int x1, int y1, int x2, int y2)
{
if(y1 > y2) //在目标右边
return 0;
else if(y1 == y2 && x1 != x2) //在目标一条垂直线上,但不是同一点
return 0;
else if(y1 == y2 && x1 == x2) //跟目标是同一点
return 1;
else{ //分治,求四种走法的总和
int result =0;
if(x1 > 1) //可以上1
result += getWays(x1 - 1, y1 + 2, x2, y2);
if(x1 > 2) //可以上2
result += getWays(x1 - 2, y1 + 1, x2, y2);
if(x1 < 5) //可以下1
result += getWays(x1 + 1, y1 + 2, x2, y2);
if(x1 < 4) //可以下2
result += getWays(x1 + 2, y1 + 1, x2, y2);
return result;
}
}
void main(void)
{
int x,y; //目标坐标

printf("请输入目标坐标:\n");
scanf("%d%d", &x, &y);
printf("总的不同走法:%d\n",getWays(1, 1, x, y));
}
不明白,再交流...

马的走法C语言算法半张中国象棋棋盘,即5×9棋盘,左上角记为A(1,1),求从A点的马,只能向右行走,走到点B(m,n)的走法一共有多少种. 中国象棋马的走法 在中国象棋棋盘上的走法,用坐标平移怎么解释 下面是中国象棋的棋盘,盘中“马”在(1,0)的位置.根据中国象棋的规则,“马”只许走“日”字.要到(5,7)的位置可以怎么走,急 如图1是一副中国象棋棋盘,马走“日”字.若棋盘上每个小方格都是边长为5CM的正方形,那么“马”连跳三步的最远路程是多少(精确到0.1CM) 中国象棋中的马能走遍棋盘上的所有格子? 下图是中国象棋棋盘的一部分,这张棋盘上只有一只马.按照规定,马走日字.问这只马是否经过99步走到棋盘上的P点?请详细说明理由.(图是半个棋盘,竖排9条线,横排5跳线.马在从左往右第二条 小学奥数 染色问题一题中国象棋的马走"日"字,车走横线或竖线,下面是半张中国象棋棋盘,试问下面问题:一只马能否从位置b出发到位置A?为什么? 在中国象棋盘上任意取定的一个位置上放一个棋子“马”.问“马”所跳的步数是奇数还是偶数?按中国象棋的走法,“马”应走“日”字,当棋盘上没有其它棋子时,这只“马”跳了若干下回到 如图是中国象棋棋盘的一半,棋子“马”走的规则是沿“日”形的对角线走.例如:图“马”所在的位置可以直接走到点A、B处.若“马”的位置在C点,为了到达D点,请按“马”走的规则,在图中画 右图是中国象棋的棋盘,盘中马在(0,1)的位置.跟据中国象棋的规定,“马”只许走“日”字.请你在图中标出“马”由(0,1)的位置跳到(5,7)的位置可以走的一种路线,并用数对表示“马” 做一做:在中国象棋棋盘上,走出“马8进9”,“炮2进4”,“车3平6”等走法,想一想,如何利用坐标平移...做一做:在中国象棋棋盘上,走出“马8进9”,“炮2进4”,“车3平6”等走法,想一想,如何利 中国象棋马走日字,如棋盘正中间有一只马,你能让他走四步,所走的路线围城一个平行四边形吗? 初中数学(平面直角坐标系)问题:中国象棋中的马能不能走到棋盘中的任何一个位子?为什么? 初中数学(平面直角坐标系)问题:中国象棋中的马能不能走到棋盘中的任何一个位子?为什么? C语言——马拦过河卒.看看我的算法错哪了,并改正.要求:如图,A点有一个过河卒,需要走到目标B点.卒行走的规则:可以向下、或者向右.同时在棋盘上的任一点有一个对方的马(如上图的C点 中国象棋棋盘怎么做 怎么做中国象棋棋盘