[TOC]
第一章从递归开始看就行
汉诺塔可能选择题
问答题写细
不考泛型
考O,不考小o,看看分治
哈诺塔
汉诺塔问题 就是搞一个很抽象的过程,每次通过把除了最底下的移到辅助塔上,再把最下面的移到目的塔,从而形成一个递归.
public class TowersOfHanoi {
public static void main(String[ ] args) {
System.out.println( “Enter number of disks” );
int n = MyInput.readInt( );
System.out.println( “The move are:”);
moveDISKs(n, ‘A’, ‘B’, ‘C’);
}
public static void moveDISKs(int n, char fromTower, char
toTower, char auxTower) {
if (n == 1)
System.out.prinln( “move disk “ + n + “from “+
fromTower +” to” + toTower);
else {
moveDISKs(n-1, fromTower, auxTower, toTower);
System.out.println( “Move disk “ + n + “from “ +
fromTower + “ to “ + toTower );
moveDISKs(n-1, auxTower, toTower, fromTower);
}
}
}
分治
先分再治 庞大的问题分解成若干小问题
一些数学公式
S=n(n+1)(2n+1)/6 i平方求和
S=(n(n+1)/2)^2^ i三次方求和