ปัญหาหอคอยฮานอย: มีหอคอยพุทธในสมัยโบราณโดยมีสาม A, B และ C ในหอคอย มีแผ่น N บน A. แผ่นที่มีขนาดแตกต่างกันขนาดที่ใหญ่กว่าอยู่ที่ด้านล่างและแผ่นเล็ก ๆ อยู่ด้านบน (ดังแสดงในภาพ)
มีพระสงฆ์ที่ต้องการย้ายแผ่น N เหล่านี้จากที่นั่ง A ไปยังที่นั่ง B แต่มีเพียงแผ่นเดียวเท่านั้นที่ได้รับอนุญาตให้ย้ายในแต่ละครั้ง ในระหว่างการเคลื่อนไหวแผ่นบนสามที่นั่งจะเก็บแผ่นขนาดใหญ่ไว้ใต้และแผ่นเล็ก ๆ ที่อยู่ด้านบน ในระหว่างกระบวนการเคลื่อนไหวคุณสามารถใช้ที่นั่ง B เพื่อต้องพิมพ์ขั้นตอนการเคลื่อนไหว หากมีเพียงแผ่นเดียวคุณไม่จำเป็นต้องใช้ที่นั่ง B และย้ายจานโดยตรงจาก A ถึง C
รหัส Java มีดังนี้:
คลาสสาธารณะ Hanoi {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {int disk = 3; // dish move (ดิสก์, 'a', 'b', 'c'); } /** ตามคำถามจำนวนจากบนลงล่าง => 1 ~ n* / / ***** @param topn หมายเลขแผ่นที่ด้านบนของหอคอยแหล่งกำเนิด* @param ซึ่งหอคอยที่จะย้ายจาก* @param inter inter, transition tower* @param ไปยังหอคอยปลายทาง System.out.println ("ดิสก์ 1 จาก" + จาก + "ถึง" + ถึง); } else {ย้าย (topn - 1, จาก, ถึง, inter); System.out.println ("ดิสก์" + topn + "จาก" + จาก " + จาก +" ถึง " + ถึง); ย้าย (topn - 1, inter, จาก, ถึง);}}}ออก
ดิสก์ 1 จาก A ถึง C Disk 2 จาก A ถึง B Disk 1 จาก C ถึง B Disk 3 จาก A ถึง C Disk 1 จาก B ไปยัง Disk 2 จาก B ถึง C Disk 1 จาก A ถึง C