文章目录
- 题目
- 来源及难度
- 解题思路
- 代码
题目
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小明参加了学校的趣味运动会,其中的一个项目是:跳格子。
地上画着一些格子,每个格子里写一个字,如下所示:
比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。一直要跳到“华”字结束。
要求跳过的路线刚好构成“从我做起振兴中华”这句话。
请你帮助小明算一算他一共有多少种可能的跳跃路线呢?
运行限制
- 最大运行时间:1s
- 最大运行内存: 128M
来源及难度
难度: 简单 ,2013年省赛填空题
解题思路
利用深度优先遍历解决此问题,构成“从我做起振兴中华”,八个字,一开始会占到“从”上,最后到达“华”上,这两个位置是确定的。这张图片,中间的字都是上和左相同,下和右相同,拿“起”字为例,意味着只能向下或者向右,在到达第四行时,无法向下,只有向右的一条路,数量加1就可以;到达第五列同理,只有向下一条路,数量加1然后返回。
代码
package DFS;
public class Dfs {
public static void main(String[] args) {
System.out.println(Dfs(0,0));
}
static int Dfs(int i,int j) {
if (i==3||j==4) {
return 1;
}
return Dfs(i+1, j)+Dfs(i, j+1);
}
}