الفكرة هي كما يلي:
لإدراك خطوات الحل لبرج هانوفر من الدرجة الثالثة ، أي في الحالة الأولية ، هناك ثلاث لوحات من أعلى إلى أسفل على أ ، وهي القرص 1 ، القرص 2 ، القرص 3 ، منها هو الأصغر والقرص 3 هو أصغر لوحة أكبر.
تحديد عدد اللوحات المتبقية.
الرمز كما يلي:
نسخة الكود كما يلي:
الطبقة العامة hanoitower {
تم نقل الفراغ الثابت العام (مستوى int ، char from ، char inter ، char to) {
إذا (المستوى == 1) {// إذا كانت هناك لوحة واحدة فقط ، فاخرج من التكرار
System.out.println ("من" + من + "لوحة التحرك رقم 1 إلى" + إلى) ؛
} آخر {// إذا كان هناك أكثر من لوحة واحدة ، فاستمر في التكرار
تحرك (المستوى - 1 ، من ، إلى ، inter) ؛
System.out.println ("من" + من + "نقل اللوحة" + مستوى + "علامة إلى" + إلى) ؛
تحرك (المستوى - 1 ، inter ، من ، إلى) ؛
}
}
الفراغ الثابت العام الرئيسي (سلسلة [] args) {
int ndisks = 3 ؛ // اضبط برج هانوفر على الترتيب الثالث
تم نقله (ndisks ، 'a' ، 'b' ، 'c') ؛ // تنفيذ خوارزمية المتحركة
}
}