/** * 汉诺塔 * n = 1时,a->c * n = 2时,a->b,a->c,b->c * n大于2时,将n分为n和n-1,第一步是将n-1从a移动到b,第二部将n从a移动到c,第三部将n-1从b移动到c * 需要移动2的n次方-1次 */ private void hanoi(int n,String a,String b,String c){ if(n==1){ //直接将盘子从a移动到c Log.i("hannio",a+ "->"+ c); }else { //将n上面的n-1个盘子从a移动到b hanoi(n-1,a,c,b); //将第n个盘子移动到c Log.i("hannio",a+ "->"+ c); //将n-1个盘子从b移动到c hanoi(n-1,b,a,c); } }