马拦过河卒 C语言特别经典的递如图,A 点有一个过河卒,需要走到目标 B 点.卒行走规则:可以向下、或者向右.同时在棋盘上的任一点有一个对方的马(如上图的C点),该马所在的点和所有跳

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/01 02:28:11

马拦过河卒 C语言特别经典的递如图,A 点有一个过河卒,需要走到目标 B 点.卒行走规则:可以向下、或者向右.同时在棋盘上的任一点有一个对方的马(如上图的C点),该马所在的点和所有跳
马拦过河卒 C语言
特别经典的递

图,A 点有一个过河卒,需要走到目标 B  
点.卒行走规则:可以向下、或者向右.同时在棋盘上的任一点有一个对方的马(如上图的C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点.例
如上图 C  点上的马可以控制 9 个点(图中的P1,P2 … P8 和 C).卒不能通过对方马的控制点.

  棋盘用坐标表示,A 点(0,0)、B 点(n,m)(n,m 为不超过 20 的整数,并由键盘输入),同样马的位置坐标是需要给出的(约定: C<>A,同时C<>B).现在要求你计算出卒从 A 点能够到达 B 点的路径的条数.
输入格式
  四个整数 分别表示B点的坐标(n,m)以及对方马的坐标(X,Y){不用判错}
输出格式
  一个整数(路径的条数).
样例输入
6 6 3 2
样例输出
17

能帮我看看哪错了么.能过例子,提交的时候是一组数据正确,两组数据超时,两组数据错误.
#include <stdio.h>
int map[21][21]={0};
int n,m,x,y;

int main(){
    int i,j;
    long long count;
    long long way(int x1,int y1);
    scanf("%d%d%d%d",&n,&m,&x,&y);
    
    for(i=0;i<=n;i++)
    {
        for(j=0;j<=m;j++)
        {
            map[i][j]=1;
        }
    }
    map[x][y]=0;
    map[x-1][y-2]=0;
    map[x-1][y+2]=0;
    map[x+1][y-2]=0;
    map[x+1][y+2]=0;
    map[x-2][y-1]=0;
    map[x-2][y+1]=0;
    map[x+2][y-1]=0;
    map[x+2][y+1]=0;
    count=way(n,m);
    
    printf("%lld",count);
    return 0;
    
}

long long way(int x1,int y1)
{
    long long result;
    
    if(map[x1][y1]==1)
    {
        if(y1==0&&x1>0)
        {
            result=way(x1-1,0);
        }
        if(x1==0&&y1>0)
        {
            result=way(0,y1-1);
        }
        if(x1>0&&y1>0)
        {
            result=way(x1-1,y1)+way(x1,y1-1);
        }
        if(x1==0&&y1==0)
        {
            result=1;
        }
    }
    else
    {
        result=0;
    }
    return(result);
}

马拦过河卒 C语言特别经典的递如图,A 点有一个过河卒,需要走到目标 B 点.卒行走规则:可以向下、或者向右.同时在棋盘上的任一点有一个对方的马(如上图的C点),该马所在的点和所有跳
把下面这段检查下,x-1,x-2,y-1,y-2是否有越界?
map[x][y]=0; map[x-1][y-2]=0; map[x-1][y+2]=0; map[x+1][y-2]=0; map[x+1][y+2]=0; map[x-2][y-1]=0; map[x-2][y+1]=0; map[x+2][y-1]=0; map[x+2][y+1]=0;

马拦过河卒 C语言特别经典的递如图,A 点有一个过河卒,需要走到目标 B 点.卒行走规则:可以向下、或者向右.同时在棋盘上的任一点有一个对方的马(如上图的C点),该马所在的点和所有跳 C语言 16*16棋盘 马数小于4的马拦过河卒问题 C语言——马拦过河卒.看看我的算法错哪了,并改正.要求:如图,A点有一个过河卒,需要走到目标B点.卒行走的规则:可以向下、或者向右.同时在棋盘上的任一点有一个对方的马(如上图的C点 过河卒,24点 pascal语言程序.(我是初学者写的易懂点 能省过程、函数尽量省)过河卒:棋盘上A点有一个过河卒,需要走到目标B点.卒行走的规则:可以向下、或者向右.同时在棋盘上C点有一个 人生哲理语言 经典的 C语言经典算法:如何较快的分解质因数 C语言经典算法:如何较快的分解质因数 pascal马拦过河卒棋盘上A点有一个过河卒,需要走到目标B点.卒行走的规则:可以向下、或者向右.同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点. pascal马拦过河卒问题棋盘上A点有一个过河卒,需要走到目标B点.卒行走的规则:可以向下、或者向右.同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制 来10句特别几点的话,特别经典的! C语言的 a--?++a: 我刚在百度知道看到经典逻辑问题;羊,白菜,狼.过河的问题,我知道怎么过河,但怎么和c++这么高级的语言扯在一起了的?还用这问题编程?若是我表达不清楚你可以百度一下看看!我不懂C++语言 什么马过河的成语 pascal马栏过河卒修改棋盘上A点有一个过河卒,需要走到目标B点.卒行走的规则:可以向下、或者向右.同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制 过河卒救急棋盘上A点有一个过河卒,需要走到目标B点.卒行走的规则:可以向下、或者向右.同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点.棋盘 过河卒(pascal)棋盘上A点有一个过河卒,需要走到目标B点.卒行走的规则:可以向下、或者向右.同时在棋盘上的任一点有一个对方的马(如下图中的C点),该马所在的点和所有跳跃一步可达的点 pascal编程:过河卒题目描述  棋盘上A点有一个过河卒,需要走到目标B点.卒行走的规则:可以向下、或者向右.同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对 求特别特别经典的语句古诗词也行,现代诗也行,笑话也可以,不过一定要特别经典的~