1、菲波那切数列
public class TestFibonacci {
public static void main(String[] args) {
//斐波那契数列:1 1 2 3 5 8 13 …
// System.out.println(febonacci(0));
printFebonacci(10);
}
//输出第i项菲波那切数列
public static int febonacci(int i){//i代表第i项
if(i<=0){
throw new RuntimeException("没有第"+i+"项!");
}
if (i == 1){
return 1;
}else if (i==2){
return 1;
}else{
return febonacci(i-2)+febonacci(i-1);
}
}
//输出前i项菲波那切数列
public static void printFebonacci(int i){
if(i<=0){
throw new RuntimeException("没有第"+i+"项!");
}
for (int j=1;j<=i;j++){
System.out.print(febonacci(j)+" ");
}
}
}
2、汉诺塔问题
public class TestHanoi {
public static void main(String[] args) {
hanoi(3,‘A’,‘B’,‘C’);
}
/**
* 将n个盘子从第一根柱子移到第三根柱子
* @param n 有n个盘子
* @param one 第一根柱子
* @param two 第二根柱子
* @param three 第三根柱子
*/
public static void hanoi(int n,char one,char two,char three){
if (n==1){
System.out.println("将第1个盘子从"+one+"移动到"+three);
}else{
hanoi(n-1,one,three,two);
System.out.println("将第"+n+"个盘子从"+one+"移动到"+three);
hanoi(n-1,two,one,three);
}
}
}