蓝桥杯官网填空题(振兴中华)

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

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

地上画着一些格子,每个格子里写一个字,如下所示:

图片描述

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

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

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

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M

//从:0,我:1,做:2,起:3,振:4,兴:5,中:6,华:7

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
  static int[] dx=new int[]{0,1};
  static int[] dy=new int[]{1,0};
  static int[][] a=new int[][]{
   
   {0,1,2,3,4},{1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7}};
  static int ans=0;
    public static void main(String[] args) {
        dfs(0,0,a[0][0]);
        System.out.println(ans);
    }
    public static void dfs(int x,int y,int sum){
      if(x==3&&y==4&&sum==28){
        ans++;
      }
      for(int i=0;i<2;i++){
          int nx=x+dx[i];
          int ny=y+dy[i];
          if(nx>=0&&nx<=3&&ny>=0&&ny<=4){
            dfs(nx,ny,sum+a[nx][ny]);
          }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/s44Sc21/article/details/132790628