Hanoi kuleleri probleminde 3 tane direk (A, B ve C) vardır. Başlangıçta, A direğinde aşağıdan yukarıya büyükten küçüğe doğru dizilmiş n tane disk vardır, diğer iki direk ise boştur. Diskler 1’den n’ye kadar en üstten başlanarak numaralandırılır. Amaç A direğinden B direğine bütün diskleri, her seferinde en fazla bir diskin yerini değiştirerek taşımaktır. Taşıma sırasında hiçbir zaman büyük bir disk kendisinden daha küçük bir diskin üzerine ya da direk harici başka bir yere konulamaz. C direği işlem sırasında yardımcı direk olarak rol oynar.
Hanoi(n, A, B, C), A’daki n diski B’ye taşımayı C’yi yardımcı direk olarak kullanarak çözen özyineli algoritmadır. n = 1 olduğunda disk n A’dan B’ye taşınır. n > 1 olduğunda önce Hanoi(n − 1, A, C, B), ardından disk n’nin A’dan B’ye taşınması ve son olarak Hanoi(n − 1, C, B, A) gerçekleştirilir. Gerçek taşıma işlemlerinin her biri bir adım olarak sayılmaktadır.
n = 3 disk için verilen algoritma toplam kaç adımda bütün diskleri A’dan B’ye taşır?
n = 4 disk için diskleri A’dan B’ye taşımak istendiğinde verilen algoritma çalıştırıldığında çözümün 3. adımı nedir?
n = 5 disk için diskleri A’dan B’ye taşımak istendiğinde verilen algoritma çalıştırıldığında çözümün 2. adımı nedir?