public class 递归 {
public static void main(String[] args) {
testa=new test();
a.DG(4);
}
}
class test{
public void DG(int n){
if (n>2) {
DG(n-1);
}
System.out.println(n);
}
2.运用递归得到乘阶
3.方法递归调用
3.用递归的方法做出斐波拉契数
1.
System.out.println("请输入想知道第几位的斐波拉契数=");
int n=input.nextInt();
System.out.println(a.fblq(n));
2.
public int fblq(int n){
if (n>=1) {
if (n==1||n==2) {
return 1;
}else{
int a=fblq(n-1)+fblq(n-2);
return a;
}
}
System.out.println("请输入大于等于1的数字");
return -1;
}
}
4./猴子吃桃: 每天吃的桃是之前的一半加一个;到第十天的时候 只剩下一个桃了 问:最初有几个桃子
System.out.println("输入第几天的猴子吃的桃子数量");
int day =input.nextInt();
int PeachNum= a.peach(day);
if (PeachNum!=-1) {
System.out.println("第"+day+"天"+"吃的桃子数"+PeachNum);
5.二维数组迷宫
1.定义的规则 1 为障碍 2为行走的路程 3是走过的路 但是没有走通(回溯)
package 位运算;
import java.security.cert.TrustAnchor;
public class 小老鼠出迷宫 {
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;
// map[2][1]=1;
// map[1][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();
}
mapRun mrun =new mapRun();
mrun.run(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();
}
}
}
class mapRun{
public boolean run(int[][] map,int i,int j){
if (map[6][5]==2) {
return true;
}else{
if (map[i][j]==0) {
map[i][j]=2;
if (run(map,i+1,j)) {
return true;
}else if (run(map,i,j+1)) {
return true;
}else if (run(map,i-1,j)) {
return true;
}else if (run(map,i,j-1)) {
return true;
}else{
map[i][j]=3;
return false;
}
}else{
return false;
}
}
}
}
跑过的二维数组路线
汉罗塔
public static void main(String[] args) {
hanLuoTa hanluota =new hanLuoTa();
hanluota.Run(5, 'A', 'B', 'C');
}
}
class hanLuoTa{
public void Run(int num,char a,char b,char c){
if (num==1) {
System.out.println(a+"->"+c);
}else {
Run(num-1,a,c,b);
System.out.println(a+"->"+c);
Run(num-1, b, a, c);
}
}
}
实现效果步骤