Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

ººÅµËþËã·¨µÄµÝ¹éÓë·ÇµÝ¹éµÄ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);


Ïà¹ØÎĵµ£º

C/C++µ¥Ôª²âÊÔÀíÂÛ¾«Òª£¨ËÄ£©

ÌâÍâƪ£ºµ¥Ôª²âÊÔÄÑÓÚ³¤ÆÚ¼á³ÖµÄÔ­ÒòÓë½â¾ö̽ÌÖ
    ÉÏһƪ¡¶µ¥Ôª²âÊÔЧÒæ¡·£¬ÓÐÍøÓÑÆÀÂÛ˵£º“µ¥Ôª²âÊԵĺô¦»ù±¾ÈËÈËÖªµÀ£¬¾ÍÊÇÄѼá³Ö£¡”¡£ÕâÒ»ÆÀÂÛÑÏÖØÌáÐÑÁËÎÒ£¬²»´í£¬“ÄѼá³Ö”Ò²ÊÇÒ»¸öÆÕ±éÏÖ×´¡£Èç¹û²»Äܼá³Ö£¬ÄÇÒ»Çж¼ÊÇ°×´î¡£Òò´Ë£¬ÕâÀï²åÈëÒ»¸öÌâÍâƪ£¬Ì½ÌÖµ¥Ôª²âÊÔÄÑÓÚ³¤Æ ......

extern extern ¡°C¡±

externÊÇC/C++ÓïÑÔÖбíÃ÷º¯ÊýºÍÈ«¾Ö±äÁ¿×÷Ó÷¶Î§£¨¿É¼ûÐÔ£©.
Ëü¸æËß±àÒëÆ÷£¬ÆäÉùÃ÷µÄº¯ÊýºÍ±äÁ¿¿ÉÒÔÔÚ±¾Ä£¿é»òÆäËüÄ£¿éÖÐʹÓá£
1¡£¶ÔÓÚextern±äÁ¿À´Ëµ£¬½ö½öÊÇÒ»¸ö±äÁ¿µÄÉùÃ÷£¬Æä²¢²»ÊÇÔÚ¶¨Òå·ÖÅäÄÚ´æ¿Õ¼ä¡£Èç¹û¸Ã±äÁ¿¶¨Òå¶à´Î£¬»áÓÐÁ¬½Ó´íÎó
2¡£Í¨³££¬ÔÚÄ£¿éµÄÍ·ÎļþÖжԱ¾Ä£¿éÌṩ¸øÆäËüÄ£¿éÒýÓõĺ¯ÊýºÍ ......

¶ÔCºê¶¨ÒåµÄССʵ¼ù

ÓúêʵÏÖÒ»¸öswap¹¦ÄÜ
#include <stdio.h>
#include <stdlib.h>
#define SWAP( TYPE,ARG1,ARG2 ) \
void TYPE##Swap( TYPE *p, TYPE *q ) \
{ \
TYPE tmp = *p; \
*p = *q; \
*q = tmp; \
} \
TYPE##Swap(&ARG1,&ARG2 ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ