蓝桥杯省赛真题2013年第四届Java本科B组第03题——振兴中华

蓝桥杯省赛真题2013年第四届Java本科B组

第03题——振兴中华

在这里插入图片描述

小明参加了学校的趣味运动会,其中的一个项目是:跳格子。

地上画着一些格子,每个格子里写一个字,如下所示:(也可参见p1.jpg)

从我做起振
我做起振兴
做起振兴中
起振兴中华

比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。一直要跳到“华”字结束。

要求跳过的路线刚好构成“从我做起振兴中华”这句话。

请你帮助小明算一算他一共有多少种可能的跳跃路线呢?

答案是一个整数,请通过浏览器直接提交该数字。
注意:不要提交解答过程,或其它辅助说明类的内容。

思路

深度优先搜索,递归,考虑三个要素,重复,变化,边界。
因为要构成“从我做起振兴中华”这句话,所以这里只有两种走法,向右或者向下。即从起点开始当前的局面只有两种选择,向右走或者向下走,把这两种选择的结果加到一起就是总结果。

代码

public class Question03 {
    
    

	public static void main(String[] args) {
    
    
		int ans = f(0,0); //从坐标(0,0)开始
		System.out.println(ans);
	}

	private static int f(int i, int j) {
    
    
		if(i==3||j==4) //竖着4块格子,横着5块格子,到边界就返回一条路径
			return 1;
		
		return f(i+1,j)+f(i,j+1); //相当于向下走和向右走两种方法的路径数的和
	}

}

运行结果

在这里插入图片描述
答案是35

猜你喜欢

转载自blog.csdn.net/qq_43594119/article/details/108734235