void hanNuoTa(int n,int a,int b,int c) { if (n == 0) return; hanNuoTa(n - 1, a, c, b); cout << n <<":"<< a<< "->" << c <<endl; hanNuoTa(n - 1, b, a, c); }
定義 n 表明n個盤子,a,b,c,表明三個柱子的標號spa
若要將n個盤子從a-》c,須要先將前n-1個盤子從a藉助c移到bcode
而後將第n個盤子從a移到cblog
而後將前n-1個盤子從b 藉助a移到c遞歸
從而遞歸實現,複雜的2^n -1class