博客
关于我
【每日蓝桥】12、一三年省赛Java组真题“振兴中华”
阅读量:82 次
发布时间:2019-02-26

本文共 984 字,大约阅读时间需要 3 分钟。

你好呀,我是灰小猿,一个超会写bug的程序猿!

欢迎大家关注我的专栏“”,该专栏的主要作用是和大家分享近几年蓝桥杯省赛及决赛等真题,解析其中存在的算法思想、数据结构等内容,帮助大家学习到更多的知识和技术!

标题:振兴中华

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

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

从我做起振

我做起振兴

做起振兴中

起振兴中华

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

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

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

答案是一个整数,请通过浏览器直接提交该数字

注意:不要提交解答过程,或其他辅助说明类的内容

解题思路:

本题可以参用递归的思想求解,我们根据题目中所给的图可以分析得到,每一个格子的下一步和又一部都是符合要求的,

因此我们可以将问题转变为:求每一个格子的下方或右方有没有格子,如果有,则方法数加1,当走到边界的时候,那么只有一种方法,就是向下或者向右,求出每一格有多少种方法,最后求出坐标在(0,0)的格子有多少种方法。

同时也可以参考数据结构中树的深度搜索的思想

答案源码:

package 一三年省赛真题;public class Year2013_Bt3 {	public static void main(String[] args) {		int answer = f(0,0);//从(0,0)点开始		System.out.println(answer);	}		/**	 * 计算在当前点上有多少种走法	 * @param i j 横纵坐标	 * @return 该点上可以走的方法	 * */	public static int f(int i,int j) {		if (i==3||j==4) {			return 1;		}		return f(i, j+1) + f(i+1, j);	}}

 

输出样例:

 

其中有不足或者改进的地方,还希望小伙伴留言提出,一起学习!

感兴趣的小伙伴可以关注专栏!

灰小猿陪你一起进步!

最后,我正在参加2020年度博客之星的评选,求小伙伴们帮忙投票支持一下哟!

投票链接:

转载地址:http://nng.baihongyu.com/

你可能感兴趣的文章
MySQL中interactive_timeout和wait_timeout的区别
查看>>
mysql中int、bigint、smallint 和 tinyint的区别、char和varchar的区别详细介绍
查看>>
mysql中json_extract的使用方法
查看>>
mysql中json_extract的使用方法
查看>>
mysql中kill掉所有锁表的进程
查看>>
mysql中like % %模糊查询
查看>>
MySql中mvcc学习记录
查看>>
mysql中null和空字符串的区别与问题!
查看>>
MySQL中ON DUPLICATE KEY UPDATE的介绍与使用、批量更新、存在即更新不存在则插入
查看>>
MYSQL中TINYINT的取值范围
查看>>
MySQL中UPDATE语句的神奇技巧,让你操作数据库如虎添翼!
查看>>
Mysql中varchar类型数字排序不对踩坑记录
查看>>
MySQL中一条SQL语句到底是如何执行的呢?
查看>>
MySQL中你必须知道的10件事,1.5万字!
查看>>
MySQL中使用IN()查询到底走不走索引?
查看>>
Mysql中使用存储过程插入decimal和时间数据递增的模拟数据
查看>>
MySql中关于geometry类型的数据_空的时候如何插入处理_需用null_空字符串插入会报错_Cannot get geometry object from dat---MySql工作笔记003
查看>>
mysql中出现Incorrect DECIMAL value: '0' for column '' at row -1错误解决方案
查看>>
mysql中出现Unit mysql.service could not be found 的解决方法
查看>>
mysql中出现update-alternatives: 错误: 候选项路径 /etc/mysql/mysql.cnf 不存在 dpkg: 处理软件包 mysql-server-8.0的解决方法(全)
查看>>