振兴中华(又见递归搜索)

来源:互联网 发布:linux应用程序开发 编辑:程序博客网 时间:2024/06/07 01:30

 题目要求:

  
标题: 振兴中华
    小明参加了学校的趣味运动会,其中的一个项目是:跳格子。
    地上画着一些格子,每个格子里写一个字,如下所示:(也可参见p1.jpg)

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

    比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。一直要跳到“华”字结束。
    要求跳过的路线刚好构成“从我做起振兴中华”这句话。
    请你帮助小明算一算他一共有多少种可能的跳跃路线呢?
答案是一个整数,请通过浏览器直接提交该数字。
注意:不要提交解答过程,或其它辅助说明类的内容。


输入代码:


/* * 振兴中华 */public class Main {    public static char [][]str={{'从','我','做','起','振'},                                  {'我','做','起','振','兴'},                                  {'做','起','振','兴','中'},                                  {'起','振','兴','中','华'}};      public static int count=0;public static void main(String[] args) {  char str1[]=new char[8];  way(0,0,0,str1);  System.out.println(count);}public static void way(int step, int x, int y, char[] str1) {      if(step>7)      {      return ;      }      if(x>3)      {      return ;      }      if(y>4)      {      return ;      }      str1[step]=str[x][y];            if(step==7)      {      if(cheak(str1)==true)      {     count++;       }      return;      }            way(step+1,x+1,y,str1);  way(step+1,x,y+1,str1);}public static boolean cheak(char[] str1) {  if("从我做起振兴中华".equals(String.valueOf(str1)))  {  return true;  }  else  {  return false;  }}}



0 0
原创粉丝点击