//求解汉诺塔问题(提示, 使用递归)
public class Test{
public static void main(String[] args) {
int nDisks = 3;
doTowers(nDisks, 'A', 'B', 'C');
}
public static void doTowers(int topN, char from, char inter, char to) {
if (topN == 1) {
System.out.println("Disk 1 from " + from + " to " + to);
} else {
doTowers(topN - 1, from, to, inter);
System.out.println("Disk " + topN + " from " + from + " to " + to);
doTowers(topN - 1, inter, from, to);
}
}
}
//青蛙跳
public class Test{
public static void main(String[] args) {
int num = 10;
System.out.println(floor(num));
}
public static int floor(int target){
if(target <= 0) return 0;
if(target == 1) return 1;
if(target == 2) return 2;
return floor(target-1) + floor(target-2);
}
}
汉诺塔&青蛙跳
最新推荐文章于 2024-07-07 17:39:01 发布