¡i¤À¨É¡jC»y¨¥ªì¾ÇªÌ¤JªùÁ¿®y ²Ä¤QÁ¿ ¨ç¼Æ(3)@ngchk.com
¡i¤À¨É¡jC»y¨¥ªì¾ÇªÌ¤JªùÁ¿®y ²Ä¤QÁ¿ ¨ç¼Æ(3)
C»y¨¥ªì¾ÇªÌ¤JªùÁ¿®y ²Ä¤QÁ¿ ¨ç¼Æ(3)
¡@¨ç¼Æªº»¼°j½Õ¥Î
¡@¡@¤@Ó¨ç¼Æ¦b¥¦ªº¨ç¼ÆÅ餺½Õ¥Î¥¦¦Û¨ºÙ爲»¼°j½Õ¥Î¡C ³oºØ¨ç¼ÆºÙ爲»¼°j¨ç¼Æ¡CC»y¨¥¤¹³\¨ç¼Æªº»¼°j½Õ¥Î¡C¦b»¼°j½Õ¥Î¤¤¡A ¥D½Õ¨ç¼Æ¤S¬O³Q½Õ¨ç¼Æ¡C°õ¦æ»¼°j¨ç¼Æ±N¤Ï´_½Õ¥Î¨ä¦Û¨¡C ¨C½Õ¥Î¤@¦¸´N¶i¤J·sªº¤@¼h¡C¨Ò¦p¦³¨ç¼Æf¦p¤U¡G
int f (int x)
{
int y;
z=f(y);
return z;
}
¡@¡@³oÓ¨ç¼Æ¬O¤@Ó»¼°j¨ç¼Æ¡C ¦ý¬O¹B¦æ¸Ó¨ç¼Æ±NµL¥ð¤î¦a½Õ¥Î¨ä¦Û¨¡A³o·íµM¬O¤£¥¿½Tªº¡C爲¤F¨¾¤î»¼°j½Õ¥ÎµL²×¤î¦a¶i¦æ¡A ¥²¶·¦b¨ç¼Æ¤º¦³²×¤î»¼°j½Õ¥Îªº¤â¬q¡C±`¥Îªº¿ìªk¬O¥[±ø¥ó§PÂ_¡A º¡¨¬¬YºØ±ø¥ó«á´N¤£¦A§@»¼°j½Õ¥Î¡AµM«á³v¼hªð¦^¡C ¤U±Á|¨Ò»¡©ú»¼°j½Õ¥Îªº°õ¦æ¹Lµ{¡C
¡@¡@[¨Ò5.9]¥Î»¼°jªkpºân!¥Î»¼°jªkpºân!¥i¥Î¤Uz¤½¦¡ªí¥Ü¡G
n!=1 (n=0,1)
n¡Ñ(n-1)! (n>1)
«ö¤½¦¡¥i½sµ{¦p¤U¡G
long ff(int n)
{
long f;
if(n<0) printf("n<0,input error");
else if(n==0||n==1) f=1;
else f=ff(n-1)*n;
return(f);
}
main()
{
int n;
long y;
printf("\ninput a inteager number:\n");
scanf("%d",&n);
y=ff(n);
printf("%d!=%ld",n,y);
}
long ff(int n)
{ ¡K¡K
else f=ff(n-1)*n;
¡K¡K
}
main()
{ ¡K¡K
y=ff(n);
¡K¡K
}
¡@¡@µ{¦¡¤¤µ¹¥Xªº¨ç¼Æff¬O¤@Ó»¼°j¨ç¼Æ¡C¥D¨ç¼Æ½Õ¥Îff «á§Y¶i¤J¨ç¼Æff°õ¦æ¡A¦pªGn<0,n==0©În=1®É³£±Nµ²§ô¨ç¼Æªº°õ¦æ¡A§_«h´N»¼°j½Õ¥Îff¨ç¼Æ¦Û¨¡C¥Ñ©ó¨C¦¸»¼°j½Õ¥Îªº¹ê°Ñ爲n-1¡A§Y§ân-1 ªºÈ½á¤©§Î°Ñn¡A³Ì«á·ín-1ªºÈ爲1®É¦A§@»¼°j½Õ¥Î¡A§Î°ÑnªºÈ¤]爲1¡A±N¨Ï»¼°j²×¤î¡CµM«á¥i³v¼h°h¦^¡C¤U±§Ú̦AÁ|¨Ò»¡©ú¸Ó¹Lµ{¡C ³]°õ¦æ¥»µ{¦¡®É¿é¤J爲5¡A §Y¨D 5!¡C¦b¥D¨ç¼Æ¤¤ªº½Õ¥Î»y¥y§Y爲y=ff(5)¡A¶i¤Jff¨ç¼Æ«á¡A¥Ñ©ón=5,¤£µ¥©ó0©Î1¡A¬GÀ³°õ¦æf=ff(n-1)*n,§Yf=ff(5-1)*5¡C¸Ó»y¥y¹ïff§@»¼°j½Õ¥Î§Yff(4)¡C ³v¦¸»¼°j®i¶}¦p¹Ï5.3©Ò¥Ü¡C¶i¦æ¥|¦¸»¼°j½Õ¥Î«á¡Aff¨ç¼Æ§Î°Ñ¨ú±oªºÈÅÜ爲1¡A¬G¤£¦AÄ~Äò»¼°j½Õ¥Î¦Ó¶}©l³v¼hªð¦^¥D½Õ¨ç¼Æ¡Cff(1)ªº¨ç¼Æªð¦^È爲1¡Aff(2)ªºªð¦^È爲1*2=2¡Aff(3)ªºªð¦^È爲2*3=6¡Aff(4) ªºªð¦^È爲6*4=24¡A³Ì«áªð¦^Èff(5)爲24*5=120¡C
¡@¡@¨Ò5. 9¤]¥i¥H¤£¥Î»¼°jªº¤èªk¨Ó§¹¦¨¡C¦p¥i¥H¥Î»¼±Àªk¡A§Y±q1¶}©l¼¥H2¡A¦A¼¥H3¡Kª½¨ìn¡C»¼±Àªk¤ñ»¼°jªk§ó®e©ö²z¸Ñ©M¹ê²{¡C¦ý¬O¦³¨Ç°ÝÃD«h¥u¯à¥Î»¼°jºtºâªk¤~¯à¹ê²{¡C¨å«¬ªº°ÝÃD¬OHanoi¶ð°ÝÃD¡C
¡@¡@
¡@¡@[¨Ò5.10]Hanoi¶ð°ÝÃD
¡@¡@¤@¶ôªO¤W¦³¤T®Ú°w¡AA¡AB¡AC¡CA°w¤W®M¦³64Ó¤j¤p¤£µ¥ªº¶ê½L¡A ¤jªº¦b¤U¡A¤pªº¦b¤W¡C¦p¹Ï5.4©Ò¥Ü¡Cn§â³o64Ó¶ê½L±qA°w²¾°ÊC°w¤W¡A¨C¦¸¥u¯à²¾°Ê¤@Ó¶ê½L¡A²¾°Ê¥i¥HɧUB°w¶i¦æ¡C¦ý¦b¥ô¦ó®ÉÔ¡A¥ô¦ó°w¤Wªº¶ê½L³£¥²¶·«O«ù¤j½L¦b¤U¡A¤p½L¦b¤W¡C¨D²¾°Êªº¨BÆJ¡C
¡@¡@¥»ÃDºtºâªk¤ÀªR¦p¤U¡A³]A¤W¦³nÓ½L¤l¡C
¡@¡@¦pªGn=1¡A«h±N¶ê½L±qAª½±µ²¾°Ê¨ìC¡C
¡@¡@¦pªGn=2¡A«h¡G
¡@¡@1.±NA¤Wªºn-1(µ¥©ó1)Ó¶ê½L²¾¨ìB¤W¡F
¡@¡@2.¦A±NA¤Wªº¤@Ó¶ê½L²¾¨ìC¤W¡F
¡@¡@3.³Ì«á±NB¤Wªºn-1(µ¥©ó1)Ó¶ê½L²¾¨ìC¤W¡C
¡@¡@¦pªGn=3¡A«h¡G
¡@¡@A. ±NA¤Wªºn-1(µ¥©ó2¡A¥O¨ä爲n`)Ó¶ê½L²¾¨ìB(ɧU©óC)¡A
¡@¡@¨BÆJ¦p¤U¡G
¡@¡@(1)±NA¤Wªºn`-1(µ¥©ó1)Ó¶ê½L²¾¨ìC¤W¡A¨£¹Ï5.5(b)¡C
¡@¡@(2)±NA¤Wªº¤@Ó¶ê½L²¾¨ìB¡A¨£¹Ï5.5(c)
¡@¡@(3)±NC¤Wªºn`-1(µ¥©ó1)Ó¶ê½L²¾¨ìB¡A¨£¹Ï5.5(d)
¡@¡@B. ±NA¤Wªº¤@Ó¶ê½L²¾¨ìC¡A¨£¹Ï5.5(e)
¡@¡@C. ±NB¤Wªºn-1(µ¥©ó2¡A¥O¨ä爲n`)Ó¶ê½L²¾¨ìC(ɧUA)¡A
¡@¡@¨BÆJ¦p¤U¡G
¡@¡@(1)±NB¤Wªºn`-1(µ¥©ó1)Ó¶ê½L²¾¨ìA¡A¨£¹Ï5.5(f)
¡@¡@(2)±NB¤Wªº¤@Ó½L¤l²¾¨ìC¡A¨£¹Ï5.5(g)
¡@¡@(3)±NA¤Wªºn`-1(µ¥©ó1)Ó¶ê½L²¾¨ìC¡A¨£¹Ï5.5(h)¡C
¡@¡@¨ì¦¹¡A§¹¦¨¤F¤TÓ¶ê½Lªº²¾°Ê¹Lµ{¡C
¡@¡@±q¤W±¤ÀªR¥i¥H¬Ý¥X¡A·ín¤j©óµ¥©ó2®É¡A ²¾°Êªº¹Lµ{¥i¤À¸Ñ爲¤TÓ¨BÆJ¡G
¡@¡@²Ä¤@¨B §âA¤Wªºn-1Ó¶ê½L²¾¨ìB¤W¡F
¡@¡@²Ä¤G¨B §âA¤Wªº¤@Ó¶ê½L²¾¨ìC¤W¡F
¡@¡@²Ä¤T¨B §âB¤Wªºn-1Ó¶ê½L²¾¨ìC¤W¡F¨ä¤¤²Ä¤@¨B©M²Ä¤T¨B¬OÃþ¦Pªº¡C
¡@¡@·ín=3®É¡A²Ä¤@¨B©M²Ä¤T¨B¤S¤À¸Ñ爲Ãþ¦Pªº¤T¨B¡A§Y§ân`-1Ó¶ê½L±q¤@Ó°w²¾¨ì¥t¤@Ó°w¤W¡A³oùتºn`=n-1¡C ÅãµM³o¬O¤@Ó»¼°j¹L
µ{¡A¾Ú¦¹ºtºâªk¥i½sµ{¦p¤U¡G
move(int n,int x,int y,int z)
{
if(n==1)
printf("%c-->%c\n",x,z);
else
{
move(n-1,x,z,y);
printf("%c-->%c\n",x,z);
move(n-1,y,x,z);
}
}
main()
{
int h;
printf("\ninput number:\n");
scanf("%d",&h);
printf("the step to moving %2d diskes:\n",h);
move(h,'a','b','c');
}
move(int n,int x,int y,int z)
{
if(n==1)
printf("%-->%c\n",x,z);
else
{
move(n-1,x,z,y);
printf("%c-->%c\n",x,z);
move(n-1,y,x,z);
}
}
main()
{ ¡K¡K
move(h,'a','b','c');
}
¡@¡@±qµ{¦¡¤¤¥i¥H¬Ý¥X,move¨ç¼Æ¬O¤@Ó»¼°j¨ç¼Æ¡A¥¦¦³¥|ӧΰÑn,x,y,z¡Cnªí¥Ü¶ê½L¼Æ¡Ax,y,z¤À§Oªí¥Ü¤T®Ú°w¡Cmove ¨ç¼Æªº¥\¯à¬O§âx¤WªºnÓ¶ê½L²¾°Ê¨ìz ¤W¡C·ín==1®É¡Aª½±µ§âx¤Wªº¶ê½L²¾¦Üz¤W¡A¿é¥Xx¡÷z¡C¦pn!=1«h¤À爲¤T¨B¡G»¼°j½Õ¥Îmove¨ç¼Æ¡A§ân-1Ó¶ê½L±qx²¾¨ìy¡F¿é¥Xx¡÷z¡F»¼°j½Õ¥Îmove¨ç¼Æ¡A§ân-1Ó¶ê½L±qy²¾¨ìz¡C¦b»¼°j½Õ¥Î¹Lµ{¤¤n=n-1¡A¬GnªºÈ³v¦¸»¼´î¡A³Ì«án=1®É¡A²×¤î»¼°j¡A³v¼hªð¦^¡C·ín=4 ®Éµ{¦¡¹B¦æªºµ²ªG爲
input number:
4
the step to moving 4 diskes:
a¡÷b
a¡÷c
b¡÷c
a¡÷b
c¡÷a
c¡÷b
a¡÷b
a¡÷c
b¡÷c
b¡÷a
c¡÷a
b¡÷c
a¡÷b
a¡÷c
b¡÷c
|