------文章底部代码分享
一、题目
标题:振兴中华
小明参加了学校的趣味运动会,其中的一个项目是:跳格子。
地上画着一些格子,每个格子里写一个字,如下所示:
从我做起振
我做起振兴
做起振兴中
起振兴中华
比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。一直要跳到“华”字结束。
要求跳过的路线刚好构成“从我做起振兴中华”这句话。
请你帮助小明算一算他一共有多少种可能的跳跃路线呢?
答案是一个整数,请通过浏览器直接提交该数字。
注意:不要提交解答过程 ,或其他辅助说明类的内容。
二、解题
(1)递归法
2.1.1
编写一个方法将坐标 ( 0 , 0 ) 传入该方法,声明一个变量存储由方法返回的数量,再将取得的数量输出;
2.1.2
利用递归的算法进行深度遍历,推算出所有的可能方案,因为横坐标最大是 4 ,纵坐标最大是 3 ,所以一旦其中一个坐标到达了边界就代表这一条路线只有一种走法了,故直接将 1 返回;
三、代码分享
public class test {
public static void main(String[] args) {
int count = recursion( 0 , 0 );
System.out.println( count );
}
public static int recursion( int i , int j ){
if ( i == 4 || j == 3 )
return 1;
return recursion( i + 1 , j ) + recursion( i , j + 1 ) ;
}
}