菜鳥日記—1月23日
案例一:
多分支遞回,斐波那契數列
用代碼求某一項斐波那契數列的值
斐波那契數列:這一項的值等于前兩項的和
如: 1,1,2,3,5,8,13…
分解成兩個子問題,f5(n-1)和f5(n-2)
static int f5(int n){
if (n == 1 || n == 2){
return 1;
}
return f5(n - 1) + f5(n - 2);
}
效果圖:


案例二:
求最大公約數
m對n不斷取余,一直到n=0為止
默認m > n
static int f6(int m,int n){
if (n == 0){
return m;
}
return f6(n,m % n);
}
效果圖:


案例三:
插入排序
static void f7(int[] array,int k){
if (k == 0){
return;
}
int x = array[k];
int index = k - 1;
f7(array,k-1);
while (x < array[index] && index > -1){
array[index + 1] = array[index];
index--;
}
array[index + 1] = x;
}
案例四:
列印漢諾塔移動路徑

static void printHanoiTower(int N,String from,String to,String help){
if (N == 1){
System.out.println("移動 " + N + "號盤子 " + from + " --> " + to);
return;
}
//將1 ~ N-1個盤子從A柱移動到C柱,B作為輔助柱子(這里的移動并不是指直接移動)
printHanoiTower(N - 1,from,help,to);
//列印將N號盤子從A柱移動到B柱
System.out.println("移動 " + N + "號盤子 " + from + " --> " + to);
//將1 ~ N-1個柱子從C柱移動到B柱,A作為輔助柱子
// (B柱此時放的柱子N最大,可以繼續放任意柱子,所以可以視為空)
printHanoiTower(N - 1,help,to,from);
}
}
效果圖:

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/251742.html
標籤:java
上一篇:Layui treeTable
