题目地址
登录—专业IT笔试面试备考平台_牛客网
输入输出描述
如果没有马存在 就是一个经典的递归题
// Dduo
// Bhu Bigdata 1421
package Dduo;
import java.util.*;
// Eslipse IDE 2020-08
// JDK 1.8
// 2024/5/21
public class Main {
static Scanner sc=new Scanner(System.in);
static int cnt=0;
public static void main(String[] args) {
//过河卒
//b
int n=sc.nextInt();
int m=sc.nextInt();
//马
// int x=sc.nextInt();
// int y=sc.nextInt();
//递归
rec(n,m);
System.out.print(cnt);
}
public static void rec(int x, int y) {
//递归出口
if(x<0||y<0)return;
//递归式
else {
if(x==0&&y==0)cnt++;
else {
rec(x-1,y);
rec(x,y-1);
}
}
}
}
递归解法
// Dduo
// Bhu Bigdata 1421
package Dduo;
import java.util.*;
// Eslipse IDE 2020-08
// JDK 1.8
// 2024/5/21
public class Main {
static Scanner sc=new Scanner(System.in);
//计数器
static int cnt=0;
//马
static int horse_X,horse_Y;
static int x1,y1;
static int x2,y2;
static int x3,y3;
static int x4,y4;
static int x5,y5;
static int x6,y6;
static int x7,y7;
static int x8,y8;
public static void main(String[] args) {
//过河卒
//b
int n=sc.nextInt();
int m=sc.nextInt();
//马
horse_X=sc.nextInt();
horse_Y=sc.nextInt();
x1=horse_X+1;y1=horse_Y-2;
x2=horse_X+2;y2=horse_Y-1;
x3=horse_X+2;y3=horse_Y+1;
x4=horse_X+1;y4=horse_Y+2;
x5=horse_X-1;y5=horse_Y+2;
x6=horse_X-2;y6=horse_Y+1;
x7=horse_X-2;y7=horse_Y-1;
x8=horse_X-1;y8=horse_Y-2;
//递归
rec(n,m);
System.out.print(cnt);
}
public static void rec(int x, int y) {
//递归出口
//跑出棋盘
if(x<0||y<0)return;
//马的控制范围
if(x==horse_X&&y==horse_Y)return;
if(x==x1&&y==y1)return;
if(x==x2&&y==y2)return;
if(x==x3&&y==y3)return;
if(x==x4&&y==y4)return;
if(x==x5&&y==y5)return;
if(x==x6&&y==y6)return;
if(x==x7&&y==y7)return;
if(x==x8&&y==y8)return;
//递归式
if(x==0&&y==0)cnt++;
else {
rec(x-1,y);
rec(x,y-1);
}
}
}