常见递归问题

1.斐波那契数列

斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)。

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        T p = new T();
        //使用方法
        System.out.println(p.Feibonaqie(7));
    }
}
class T {
    public int Feibonaqie(int n){
        if(n == 1 || n == 2)
        {
            return 1;
        }else
        {
            return Feibonaqie(n - 1) + Feibonaqie(n - 2);
        }

​    }
}

2.猴子吃桃

题目:猴子第一天摘了若干个桃子,当即吃了一半,还不解馋,又多吃了一个;第二天,吃剩下的桃子的一半,还不过瘾,又多吃了一个;以后每天都吃前一天剩下的一半多一个,到第10天想再吃时,只剩下一个桃子了。问第一天共摘了多少个桃子?

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        T p = new T();
        //使用方法
        if(p.houzichitao(1) != -1)
        {
        System.out.println( p.houzichitao(1) );
        }
    }
}
class T {
    public int houzichitao(int day) {
        if (day == 10) {
            return 1;
        } else if (day >= 1 && day <= 9) {
            return (houzichitao(day + 1) + 1) * 2;
        }else{
            System.out.println("应该输入day在1-10的数");
            return -1;
        }
    }
}

3.迷宫问题

求最短路径

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
      int[][] map= new int[8][7];
      for(int i = 0;i < 7;i++)
      {
          map[0][i] = 1;
          map[7][i] = 1;
      }
      for(int i = 0;i < 8;i++)
      {
          map[i][0] = 1;
          map[i][6] = 1;
      }

​      map[3][1] = 1;
​      map[3][2] = 1;
​      //设置回溯
​      map[2][2]=1;

​      System.out.println("====当前地图情况====");
​      for(int i = 0;i < map.length;i++)
​      {
​          for(int j = 0;j < map[i].length;j++)
​          {
​              System.out.print(map[i][j] + " ");
​          }
​          System.out.println();
​      }
​      T p = new T();
​      p.findway(map,1,1);
​        System.out.println("====找路的情况====");
​        for(int i = 0;i < map.length;i++)
​        {
​            for(int j = 0;j < map[i].length;j++)
​            {
​                System.out.print(map[i][j] + " ");
​            }
​            System.out.println();
​        }
​    }
}
// 0 表示可以走 1 表示障碍物 2 表示可以走 3 表示走过,但走不通死路
// 策略 下 右 上 左
class T {
​    public boolean findway(int[][] map, int i, int j) {
​        if (map[6][5] == 2) 
​        {
​            //说明已经找到
​            return true;
​        } else if (map[i][j] == 0) 
​        {
​            //假定可以通过
​            map[i][j] = 2;
​            //下 右 上 左
​            if (findway(map, i + 1, j)) {
​                return true;
​            } else if (findway(map, i, j + 1)) {
​                return true;
​            } else if (findway(map, i - 1, j)) {
​                return true;
​            } else if (findway(map, i, j - 1)) {
​                return true;
​            }else
​            {
​                map[i][j] = 3;
​                return false;
​            }
​        }else
​        {
​            return false;
​        }
​    }
}

相关推荐

  1. 常见问题

    2024-05-16 13:36:04       31 阅读
  2. 前端常见应用

    2024-05-16 13:36:04       31 阅读
  3. Python 面试问题

    2024-05-16 13:36:04       47 阅读
  4. N/八皇后问题

    2024-05-16 13:36:04       60 阅读
  5. :汉诺塔问题III

    2024-05-16 13:36:04       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-16 13:36:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-16 13:36:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-16 13:36:04       82 阅读
  4. Python语言-面向对象

    2024-05-16 13:36:04       91 阅读

热门阅读

  1. css基础之定位、元素的显示与隐藏

    2024-05-16 13:36:04       31 阅读
  2. C++虚函数的使用

    2024-05-16 13:36:04       36 阅读
  3. 如何在MATALB中调用libMR

    2024-05-16 13:36:04       30 阅读
  4. 俄罗斯方块【python,小游戏】

    2024-05-16 13:36:04       28 阅读
  5. Prometheus 服务发现 添加标签

    2024-05-16 13:36:04       37 阅读
  6. Redis教程(三):Redis的五种基本数据类型

    2024-05-16 13:36:04       34 阅读
  7. Python简易 博客系统

    2024-05-16 13:36:04       31 阅读
  8. 无阻赛延时模块

    2024-05-16 13:36:04       30 阅读
  9. 【无标题】

    2024-05-16 13:36:04       30 阅读
  10. 「服务器」Nginx详解

    2024-05-16 13:36:04       36 阅读
  11. android设计模式-原型设计(深、浅拷贝)

    2024-05-16 13:36:04       39 阅读
  12. 设计模式--组合模式

    2024-05-16 13:36:04       30 阅读
  13. 线程崩溃了,进程也会崩溃吗?

    2024-05-16 13:36:04       24 阅读