晨星_剑 2024-07-29 22:43 采纳率: 25%
浏览 3
已结题

这个是我写的问题“过河卒”的代码(标签-ios|关键词-stream)

这个是我写的问题“过河卒”的代码,有问题,但不知到哪里有,有厉害的人指出吗?

#include <iostream>
using namespace std;
int gx[3]={0,1,0};
int gy[3]={-1,0,1};
int hxb[8]={-1,-2,-2,-1,+1,+2,+2,+1};
int hyb[8]={-2,-1,+1,+2,+2,+1,-1,-2};
int ex,ey;
int hx,hy;
int ans=0;
bool map[100][100];
void f(int zx,int zy)
{
    if(zx==ex&&zy==ey)
    {
        ans++;
        return;
    }
    for(int i = 0;i < 3;i++)
    {
        bool ok =
        zx+gx[i]<=ex&&
        zx+gx[i]>=0&&
        zy+gy[i]<=ey&&
        zy+gy[i]>=0&&
        map[zx+gx[i]][zy+gy[i]]==1;
        for(int j = 0;j < 8;j++)
        {
            if(zx+gx[i]==hx+hxb[j]&&zy+gy[i]==hy+hyb[j])
            {
                ok=0;
                break;
            }
        }
        if(ok)
        {
            map[zx+gx[i]][zy+gy[i]]=1;
            f(zx+gx[i],zy+gy[i]);
            map[zx+gx[i]][zy+gy[i]]=0;
        }
    }
    return;
} 
int main()
{
    cin>>ex>>ey>>hx>>hy;
    f(0,0);
    cout<<ans;
    return 0;
}

  • 写回答

1条回答 默认 最新

  • 晨星_剑 2024-07-29 22:46
    关注

    补充一下,gx/gy是卒走的数组,hxb/hyb是马的范围,ex/ey是终点的坐标,hx/hy是马的坐标

    评论

报告相同问题?

问题事件

  • 系统已结题 8月6日
  • 创建了问题 7月29日

悬赏问题

  • ¥15 Mac版Fiddler Everywhere4.0.1提示强制更新
  • ¥15 android 集成sentry上报时报错。
  • ¥50 win10链接MySQL
  • ¥35 跳过我的世界插件ip验证
  • ¥15 抖音看过的视频,缓存在哪个文件
  • ¥15 自定义损失函数报输入参数的数目不足
  • ¥15 如果我想学习C大家有是的的资料吗
  • ¥15 根据文件名称对文件进行排序
  • ¥15 deploylinux的ubuntu系统无法成功安装使用MySQL❓
  • ¥15 有人会用py或者r画这种图吗