• java实现第四届蓝桥杯振兴中华


    振兴中华

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

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

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

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

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

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

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

    在这里插入图片描述

    解题思路
    这是一道简单的深搜题,我们可以把每个格子抽象为一个坐标,从(0,0),华(3,4)这样。题意说横向或纵向跳到相邻的格子里,但我们发现只有向下走或者向右走才能达到要求,向上走或者想左走都不可能达到要求。所以在路线的总数为所在格子向下走的线路数和想右走的线路数的总和,当走到下边界或者右边界时,线路就已经确定了。

    public class Main {
     
    	public static void main(String[] args) {
    		int ans = 0;
    		ans = dfs(0, 0);
    		System.out.println(ans);
    	}
     
    	public static int dfs(int i, int j) {
    		if (i == 3 || j == 4) {
    			return 1;
    		}
    		// dfs(i + 1, j):向下走的路线总数;dfs(i, j+ 1):向右走的路线总数
    		return dfs(i + 1, j) + dfs(i, j + 1);
    	}
    }
    

    结果:35

  • 相关阅读:
    关于Flutter引用image_picker插件报错
    关于Flutter页面布局
    关于Flutter和Android混合开发引入flutter_boost插件-有更新,见底部
    关于uni-app的scroll-into-view
    关于全站http切换到https
    关于canvas画原子运动模型
    [BS-00] const限定常量或者变量(初次赋值后),其值不允许被改变
    认识C和内存管理
    C语言的内存管理
    堆heap和栈Stack(百科)
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12947530.html
Copyright © 2020-2023  润新知