ººÅµËþËã·¨µÄµÝ¹éÓë·ÇµÝ¹éµÄCÒÔ¼°C++Ô´´úÂë
ººÅµËþËã·¨µÄµÝ¹éÓë·ÇµÝ¹éµÄCÒÔ¼°C++Ô´´úÂë
By Minidxer | January 30, 2008
ººÅµËþ£¨ÓֳƺÓÄÚËþ£©ÎÊÌâÆäʵÊÇÓ¡¶ÈµÄÒ»¸ö¹ÅÀϵĴ«Ëµ¡£
¿ªÌì±ÙµØµÄÉñ²ªÀÂ꣨ºÍÖйúµÄÅ̹Ų¶àµÄÉñ°É£©ÔÚÒ»¸öÃíÀïÁôÏÂÁËÈý¸ù½ð¸ÕʯµÄ°ô£¬µÚÒ»¸ùÉÏÃæÌ××Å64¸öÔ²µÄ½ðƬ£¬×î´óµÄÒ»¸öÔÚµ×Ï£¬ÆäÓàÒ»¸ö±ÈÒ»¸öС£¬ÒÀ´ÎµþÉÏÈ¥£¬ÃíÀïµÄÖÚÉ®²»¾ëµØ°ÑËüÃÇÒ»¸ö¸öµØ´ÓÕâ¸ù°ô°áµ½ÁíÒ»¸ù°ôÉÏ£¬¹æ¶¨¿ÉÀûÓÃÖмäµÄÒ»¸ù°ô×÷Ϊ°ïÖú£¬µ«Ã¿´ÎÖ»ÄÜ°áÒ»¸ö£¬¶øÇÒ´óµÄ²»ÄÜ·ÅÔÚСµÄÉÏÃæ¡£¼ÆËã½á¹û·Ç³£¿Ö²À(Òƶ¯Ô²Æ¬µÄ´ÎÊý)18446744073709551615£¬ÖÚÉ®ÃǼ´±ãÊǺľ¡±ÏÉú¾«Á¦Ò²²»¿ÉÄÜÍê³É½ðƬµÄÒƶ¯ÁË¡£
Ëã·¨½éÉÜ£º
ÆäʵËã·¨·Ç³£¼òµ¥£¬µ±ÅÌ×ӵĸöÊýΪnʱ£¬Òƶ¯µÄ´ÎÊýÓ¦µÈÓÚ2^n – 1£¨ÓÐÐËȤµÄ¿ÉÒÔ×Ô¼ºÖ¤Ã÷ÊÔÊÔ¿´£©¡£ºóÀ´Ò»Î»ÃÀ¹úѧÕß·¢ÏÖÒ»ÖÖ³öÈËÒâÁϵļòµ¥·½·¨£¬Ö»ÒªÂÖÁ÷½øÐÐÁ½²½²Ù×÷¾Í¿ÉÒÔÁË¡£Ê×ÏÈ°ÑÈý¸ùÖù×Ó°´Ë³ÐòÅųÉÆ·×ÖÐÍ£¬°ÑËùÓеÄÔ²ÅÌ°´´Ó´óµ½Ð¡µÄ˳Ðò·ÅÔÚÖù×ÓAÉÏ£¬¸ù¾ÝÔ²Å̵ÄÊýÁ¿È·¶¨Öù×ÓµÄÅÅ·Å˳Ðò£ºÈônΪżÊý£¬°´Ë³Ê±Õë·½ÏòÒÀ´Î°Ú·Å A B C£»
ÈônΪÆæÊý£¬°´Ë³Ê±Õë·½ÏòÒÀ´Î°Ú·Å A C B¡£
£¨1£©°´Ë³Ê±Õë·½Ïò°ÑÔ²ÅÌ1´ÓÏÖÔÚµÄÖù×ÓÒƶ¯µ½ÏÂÒ»¸ùÖù×Ó£¬¼´µ±nΪżÊýʱ£¬ÈôÔ²ÅÌ1ÔÚÖù×ÓA£¬Ôò°ÑËüÒƶ¯µ½B£»ÈôÔ²ÅÌ1ÔÚÖù×ÓB£¬Ôò°ÑËüÒƶ¯µ½C£»ÈôÔ²ÅÌ1ÔÚÖù×ÓC£¬Ôò°ÑËüÒƶ¯µ½A¡£
£¨2£©½Ó×Å£¬°ÑÁíÍâÁ½¸ùÖù×ÓÉÏ¿ÉÒÔÒƶ¯µÄÔ²ÅÌÒƶ¯µ½ÐµÄÖù×ÓÉÏ¡£¼´°Ñ·Ç¿ÕÖù×ÓÉϵÄÔ²ÅÌÒƶ¯µ½¿ÕÖù×ÓÉÏ£¬µ±Á½¸ùÖù×Ó¶¼·Ç¿Õʱ£¬Òƶ¯½ÏСµÄÔ²ÅÌ¡£ÕâÒ»²½Ã»ÓÐÃ÷È·¹æ¶¨Òƶ¯ÄĸöÔ²ÅÌ£¬Äã¿ÉÄÜÒÔΪ»áÓжàÖÖ¿ÉÄÜÐÔ£¬Æäʵ²»È»£¬¿ÉʵʩµÄÐж¯ÊÇΨһµÄ¡£
£¨3£©·´¸´½øÐУ¨1£©£¨2£©²Ù×÷£¬×îºó¾ÍÄÜ°´¹æ¶¨Íê³ÉººÅµËþµÄÒƶ¯¡£
ËùÒÔ½á¹û·Ç³£¼òµ¥£¬¾ÍÊÇ°´ÕÕÒƶ¯¹æÔòÏòÒ»¸ö·½ÏòÒƶ¯½ðƬ£º
Èç3½×ººÅµËþµÄÒƶ¯£ºA→C,A→B,C→B,A→C,B→A,B→C,A→C
ººÅµËþÎÊÌâÒ²ÊdzÌÐòÉè¼ÆÖеľµäµÝ¹éÎÊÌ⣬ÏÂÃæÎÒÃǽ«¸ø³öµÝ¹éºÍ·ÇµÝ¹éµÄ²»Í¬ÊµÏÖÔ´´úÂë¡£
¡ñººÅµËþËã·¨µÄµÝ¹éʵÏÖC++Ô´´úÂë
#include <fstream>
#include <iostream>
using namespace std;
ofstream fout("out.txt");
void Move(int n,char x,char y)
{
fout<<"°Ñ"<<n<<"ºÅ´Ó"<<x<<"Ų¶¯µ½"<<y<<endl;
}
void Hannoi(int n,char a,char b,char c)
{
if(n==1)
Move(1,a,c);
else
{
Hannoi(n-1,a,c,b);
Ïà¹ØÎĵµ£º
µÚ¶þÕ Êý¾ÝÀàÐÍ
Ò»¡¢Êý¾ÝÀàÐÍ·ÖÀà
1 ÁªºÏÀàÐÍ
2 º¯ÊýÀàÐÍ
3 ÊýÁ¿ÀàÐÍ
3.1ËãÊõÀàÐÍ
¢Ù »ù±¾Êý¾ÝÀàÐÍ
ÕûÐÍ£¨°üÀ¨char£©
¸¡µãÐÍ ......
µÚ¶þÕ Õ÷·þ¿É²âÐÔÄÑÌâ
2.1 ¿É²âÐÔÎÊÌâÏê½â£¨1£©
µ¥Ôª²âÊÔЧÒæÌرð¸ß£¬·½·¨Ò²ºÜ¼òµ¥£¬µ«È´³¢ÊÔµÄÆóÒµºÜ¶à£¬³É¹¦ÊµÊ©µÄÆóÒµºÜÉÙ£¬ÎªÊ²Ã´ÄØ£¿Ö÷ÒªÔÒò¾ÍÊÇÄÑÓÚÍ»ÆƿɲâÐÔÎÊÌâ¡£“¿É²â”Õâ¸ö´Ê£¬Òâ˼ÒѾºÜÃ÷°×ÁË£¬Èç¹û²»“¿É²â”µÄ»°£¬ÄǾÍÊDz»Äܲ⣬û·¨²â£¬¾ÍÊÇ× ......
×î½üÔÚÑо¿²Ù×÷ϵͳ£¬¡¶×Ô¼º¶¯ÊÖд²Ù×÷ϵͳ¡·ÉϵÚ5Õ½²ÁËasmºÍcº¯ÊýÖ®¼ä»¥µ÷Óã¬Ä¿µÄÊÇʹÓÃcÀ´Ð´²Ù×÷ϵͳÄں˵ĴúÂ룬±Ï¾¹Óûã±àд´úÂ뻹ÊǺܷÑʱ¼äµÄÊ¡£
ÅäÖÃLinux¿ª·¢»·¾³ÊµÔÚÊÇÌ«Âé·³£¬Òª×°ÐéÄâ»ú£¬»¹ÒªÅäÖÃÀÏ°ëÌì¡£ÓÚÊǾÍÏëÄܶ¼ÔÚwindows»·¾³ÏÂʵÏÖ»¥µ÷Ó㬺Ü×ÔÈ»µÄÏëµ½ÁËming ......