#有点小问题
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
int judge(int i, int j, int p3, int p4);
int main()
{
int i, j, x, y;
int p1, p2, p3, p4;
int position[20][20];
scanf("%d%d%d%d", &p1, &p2, &p3, &p4);
for (i = 0; i <= p1; i++)
{
for (j = 0; j <= p2; j++)
{
if (judge(i, j, p3, p4))position[i][j] = 0;
else if (i == 0)position[i][j] = 1;
else if (j == 0)position[i][j] = 1;
else position[i][j] = position[i - 1][j] + position[i][j - 1];
}
}
printf("%d", position[p1][p2]);
return 0;
}
int judge(int i, int j, int p3, int p4)//i为横坐标,j为纵坐标;
{
int k = 0; //判断是否为控制点的返回值
int as = 0;
int h, s;
h = abs(i - p3);
s = abs(j - p4);
as = pow(h, 2) + pow(s, 2); //判断两点之间距离是否为根号五
if (as == 5)k = 1;
else if (i == p3 && j == p4)k = 1;//判断是否在马的位置
else k = 0;
return(k);
}
有点问题,只能60分,不知道怎么改