|
a b c gibi dik konumda yerleştirilmiş 3 çubuk ve n adat disk verilmektedir başlangıç durumundaki diskler,üsteki her diskin çapı daha küçük olmak üzere a çubuguna yerleştirilmiştir.her seferinde yanlız bir diskin hareketine izin verildiğinde büyük diski küçüğünün üzerine yerleştirmedendisklerin c çubuguna taşınması istenmektedir.
c# kodu
class Program
{
/// <summary>
/// Hanoi külesi problemi
/// a b c gibi gibi dik konumda yerleştirilmiş 3 çucuk ve n adaet disk
/// verilmektedir
/// başlangıç durumundaki diskler,üsteki her diskin çapı daha küçük olmak üzere
/// a çubuguna yerleştirilmiştir...
/// her seferinde yanlız bir diskin harekteine izin verildiğinde
/// büyük diski küçüğünün üzerine yerleştirmeden
/// disklerin c çubuguna taşınması istenmektedir.
///
/// </summary>
/// <param name="args"></param>
static void Main(string[] args)
{
//hanoi problemi problein alt problemler paraçlanması yardımıyla çözülebilir
//çözüme giden yolda probleme şöyle bir bakacak olursak
//1 adım : n-1 disk orta çubugua taşınır
//2 adım : en alt daki disk direkt sağa konulur
//3 adım : n-1 disk direkt sağa taşınır
Console.Clear();
string n;
Console.WriteLine("Disk sayısını giriniz");
n = Console.ReadLine();
hanoi(Convert.ToInt32(n),'A','B','C');
Console.ReadLine();
}
public static void hanoi(int n, char x, char y, char z)
{
if (n == 1) {
Console.WriteLine("Diski {0} çubugundan {1} çubuguna koy. \n\n", x, z);
Console.WriteLine("Hanoi({0},{1},{2})", x, y, z);
}
else
{
hanoi(n - 1, x,z, y);
hanoi(1, x, y, z);
hanoi(n - 1, y, x, z);
}
}
}
Kategori
: Algoritma
Etiketler : CSharp ,
Tarih : 21.03.2011
Ekleyen : ozgur
|