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;
}
}
}