输入相同,输出不同,且异常的大,求各位大佬解答,万分感谢
#include "stdio.h"
#include "mem.h"
#include "stdbool.h"
int horsex[9]={0,2,1,-1,-2,-2,-1,1,2};
int horsey[9]={0,1,2,2,1,-1,-2,-2,-1};
int main()
{
int i = 0,j = 0;
int bpx/*这是b点x坐标*/,bpy,hpx/*马的x坐标*/,hpy;
scanf("%d%d%d%d",&bpx,&bpy,&hpx,&hpy);
unsigned long long board[bpx][bpy]={1};
bool ifhorse[bpx][bpy] = {false};
memset(&ifhorse,0,sizeof(bool));
for(i = 0;i < 9;i++)
{
board[hpx+horsex[i]][hpy+horsey[i]] = 0;
ifhorse[hpx+horsex[i]][hpy+horsey[i]] = true ;
}
if(board[0][0] == 0)
{
printf("0");
return 0;
}
for(i = 0;i < bpx;i++)
{
for(j = 0;j < bpy;j++)
{
if(ifhorse[i+1][j+1] == false)
{
board[i+1][j+1] = board[i][j+1]+board[i+1][j+1];
}
}
}
printf("%ull",board[bpx][bpy]);
return 0;
}