题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小明参加了学校的趣味运动会,其中的一个项目是:跳格子。
地上画着一些格子,每个格子里写一个字,如下所示:
比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。一直要跳到“华”字结束。
要求跳过的路线刚好构成“从我做起振兴中华”这句话。
请你帮助小明算一算他一共有多少种可能的跳跃路线呢?
运行限制
- 最大运行时间:1s
- 最大运行内存: 128M
//从:0,我:1,做:2,起:3,振:4,兴:5,中:6,华:7
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
static int[] dx=new int[]{0,1};
static int[] dy=new int[]{1,0};
static int[][] a=new int[][]{{0,1,2,3,4},{1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7}};
static int ans=0;
public static void main(String[] args) {
dfs(0,0,a[0][0]);
System.out.println(ans);
}
public static void dfs(int x,int y,int sum){
if(x==3&&y==4&&sum==28){
ans++;
}
for(int i=0;i<2;i++){
int nx=x+dx[i];
int ny=y+dy[i];
if(nx>=0&&nx<=3&&ny>=0&&ny<=4){
dfs(nx,ny,sum+a[nx][ny]);
}
}
}
}