Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
dzÎöǶÈëʽCÓÅ»¯¼¼ÇÉ
 
  4029  次浏览      27
 2019-4-29
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚcsdn£¬±¾ÎľÍǶÈëʽ£ÃÓïÑÔÔÚϵͳ¿ª·¢ÖÐ,ÈçºÎ¸üºÃµÄÀûÓÃϵͳ×ÊÔ´,¶Ô´úÂë½øÐÐÓÅ»¯½øÐÐÁËÌÖÂÛ£¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£

1 ¸ÅÊö

ǶÈëʽϵͳÊÇÖ¸Íê³ÉÒ»ÖÖ»ò¼¸ÖÖÌØ¶¨¹¦ÄܵļÆËã»úϵͳ,¾ßÓÐ×Ô¶¯»¯³Ì¶È¸ß,ÏìÓ¦ËÙ¶È¿ìµÈÓŵã,ĿǰÒѹ㷺ӦÓÃÓÚÏû·Ñµç×Ó,¹¤Òµ¿ØÖƵÈÁìÓò.ǶÈëʽϵͳÊÜÆäʹÓõÄÓ²¼þÒÔ¼°ÔËÐл·¾³µÄÏÞÖÆ,·Ç³£×¢ÖØ´úÂëµÄʱ¼äºÍ¿Õ¼äЧÂÊ,Òò´ËÑ¡ÔñÒ»ÖÖºÏÊʵĿª·¢ÓïÑÔÊ®·ÖÖØÒª.Ŀǰ,ÔÚǶÈëʽϵͳ¿ª·¢ÖпÉʹÓõÄÓïÑԺܶà,ÆäÖÐ CÓïÑÔÓ¦ÓõÃ×î¹ã·º.ËäÈ»Óà C ÓïÑÔ±à³Ì¾ßÓÐÐí¶àÓŵã,µ«»ùÓÚǶÈëʽϵͳµÄCÓïÑԺͱê×¼ CÓïÑÔÓÖÓкܴóÇø±ð.½ÓÏÂÀ´ÎÒ½áºÏǶÈëʽϵͳµÄÌØµãºÍ×Ô¼ºµÄһЩ»ýÀÛ,ÌÖÂÛÔÚ³ÌÐòÉè¼ÆÖдúÂëÓÅ»¯µÄһЩС¼¼ÇÉ.

2 ǶÈëʽCÓïÑÔµÄÌØµã

×÷ΪһÖֽṹ»¯³ÌÐòÉè¼ÆÓïÑÔ,C ÓïÑÔ¼æ¹Ë¶àÖָ߼¶ÓïÑÔµÄÌØµã,¾ßÓкÜÇ¿µÄ¹¦ÄÜÐԺͿÉÒÆÖ²ÐÔ.µ«ÔÚǶÈëʽϵͳ¿ª·¢ÖÐ,³öÓڶԵͼ۲úÆ·µÄÐèÇó,ϵͳµÄ¼ÆËãÄÜÁ¦ºÍ´æ´¢ÈÝÁ¿¶¼·Ç³£ÓÐÏÞ,Òò´ËÈçºÎÀûÓúÃÕâЩ×ÊÔ´¾ÍÏÔµÃÊ®·ÖÖØÒª.¿ª·¢ÈËԱӦעÒâǶÈëʽ CÓïÑԺͱê×¼ C ÓïÑÔµÄÇø±ð,¼õÉÙÉú³É´úÂ볤¶È,Ìá¸ß³ÌÐòÖ´ÐÐЧÂÊ,ÔÚ³ÌÐòÉè¼ÆÖжԴúÂë½øÐÐÓÅ»¯.

3 C´úÂëÔÚ³ÌÐòÖеÄÓÅ»¯

ÏÖÔÚµÄ C ±àÒëÆ÷»á×Ô¶¯¶Ô´úÂë½øÐÐÓÅ»¯,µ«ÕâЩÓÅ»¯ÊǶÔÖ´ÐÐËٶȺʹúÂ볤¶ÈµÄƽºâ.Èç¹ûÒª»ñµÃ¸üСÇÒÖ´ÐÐЧÂʸü¸ßµÄ´úÂë,ÐèÒª³ÌÐòÔ±ÊÖ¹¤¶Ô´úÂë½øÐÐÓÅ»¯.

4 ±äÁ¿ÀàÐ͵͍Òå

²»Í¬µÄÊý¾ÝÀàÐÍËùÉú³ÉµÄ»úÆ÷´úÂ볤¶ÈÏà²îºÜ¶à,±äÁ¿ÀàÐÍѡȡµÄ·¶Î§Ô½Ð¡ÔËÐÐËÙ¶ÈÔ½¿ì,Õ¼ÓõÄÄÚ´æÔ½ÉÙ.Äܹ»Ê¹ÓÃ×Ö·ûÐÍ(char)¶¨ÒåµÄ±äÁ¿,¾Í²»ÒªÊ¹ÓÃÕûÐÍ(int)±äÁ¿À´¶¨Òå;Äܹ»Ê¹ÓÃÕûÐͱäÁ¿¶¨ÒåµÄ±äÁ¿¾Í²»ÒªÓó¤ÕûÐÍ(long int),Äܲ»Ê¹Óø¡µãÐÍ(float)±äÁ¿¾Í²»ÒªÊ¹Óø¡µãÐͱäÁ¿.ÏàͬÀàÐ͵ÄÊý¾ÝÀàÐÍ,ÓÐÎÞ·ûºÅ¶Ô»úÆ÷´úÂ볤¶ÈÒ²ÓÐÓ°Ïì.Òò´ËÎÒÃÇÓ¦°´ÕÕʵ¼ÊÐèÒªºÏÀíµÄÑ¡ÓÃÊý¾ÝÀàÐÍ.µ±È»,ÔÚ¶¨Òå±äÁ¿ºó²»Òª³¬¹ý±äÁ¿µÄ×÷Ó÷¶Î§,Èç¹û³¬¹ý±äÁ¿µÄ·¶Î§¸³Öµ,C±àÒëÆ÷²¢²»±¨´í,µ«³ÌÐòÔËÐнá¹ûÈ´´íÁË,¶øÇÒÕâÑùµÄ´íÎóºÜÄÑ·¢ÏÖ.

5 Ëã·¨ÓÅ»¯

Ëã·¨ÓÅ»¯Ö¸¶Ô³ÌÐòʱ¿Õ¸´ÔӶȵÄÓÅ»¯:ÔÚ PC »úÉϽøÐгÌÐòÉè¼ÆÊ±Ò»°ã²»±Ø¹ý¶à¹Ø×¢³ÌÐò´úÂëµÄ³¤¶Ì,Ö»Ð迼Âǹ¦ÄܵÄʵÏÖ,µ«Ç¶Èëʽϵͳ¾Í±ØÐ뿼ÂÇϵͳµÄÓ²¼þ×ÊÔ´,ÔÚ³ÌÐòÉè¼ÆÊ±,Ó¦¾¡Á¿²ÉÓÃÉú³É´úÂë¶ÌµÄËã·¨,ÔÚ²»Ó°Ïì³ÌÐò¹¦ÄÜʵÏÖµÄÇé¿öÏÂÓÅ»¯Ëã·¨.

6 Êʵ±µÄʹÓúê

ÔÚ C³ÌÐòÖÐʹÓúê´úÂë¿ÉÒÔÌá¸ß³ÌÐòµÄÖ´ÐÐЧÂÊ.ºê´úÂë±¾Éí²»ÊǺ¯Êý.µ«Ê¹ÓÃÆðÀ´Ïñº¯Êý.º¯Êýµ÷ÓÃҪʹÓÃϵͳµÄÕ»À´±£´æÊý¾Ý,ͬʱ CPU ÔÚº¯Êýµ÷ÓÃʱÐèÒª±£´æºÍ»Ö¸´µ±Ç°µÄÏÖ³¡,½øÐнøÕ»ºÍ³öÕ»²Ù×÷,ËùÒÔº¯Êýµ÷ÓÃÒ²ÐèÒª CPUʱ¼ä.¶øºê¶¨Òå¾ÍûÓÐÕâ¸öÎÊÌâ:ºê¶¨Òå½ö½ö×÷ΪԤÏÈдºÃµÄ´úÂëǶÈëµ½µ±Ç°³ÌÐòÖÐ,²»²úÉúº¯Êýµ÷ÓÃ,ËùÕ¼ÓõĽö½öÊÇһЩ¿Õ¼ä,ʡȥÁ˲ÎÊýѹջ,Éú³É»ã±àÓïÑ﵀ call µ÷ÓÃ,·µ»Ø²ÎÊý,Ö´ÐÐ returnµÈ¹ý³Ì,´Ó¶øÌá¸ßÁ˳ÌÐòµÄÖ´ÐÐËÙ¶È.ËäÈ»ºêÆÆ»µÁ˳ÌÐòµÄ¿É¶ÁÐÔ,ʹÅÅ´í¸ü¼ÓÂé·³,µ«¶ÔÓÚǶÈëʽϵͳ,ΪÁË´ïµ½ÒªÇóµÄÐÔÄÜ,ǶÈë´úÂë³£³£ÊDZØÐëµÄ×ö·¨.

´ËÍâ,ÎÒÃÇ»¹Òª±ÜÃâ²»±ØÒªµÄº¯Êýµ÷ÓÃ,Çë¿´ÏÂÃæµÄ´úÂë:

void str_print( char *str )
{
int i;
for ( i = 0; i < strlen ( str ); i++ )
{
printf("%c",str[ i ] );
}
}
void str_print1 ( char *str )
{
int len;
len = strlen ( str );
for ( i = 0; i < len; i++ )
{
printf("%c",str[ i ] );
}
}

Çë×¢Òâ,ÕâÁ½¸öº¯ÊýµÄ¹¦ÄÜÏàËÆ.È»¶ø,µÚÒ»¸öº¯Êýµ÷ÓÃstrlenº¯Êý¶à´Î,¶øµÚ¶þ¸öº¯ÊýÖ»µ÷Óú¯ÊýstrlenÒ»´Î.Òò´ËµÚ¶þ¸öº¯ÊýÐÔÄÜÃ÷ÏԱȵÚÒ»¸öºÃ.

7 ÄÚǶ»ã±à

³ÌÐòÖжÔʱ¼äÒªÇó¿Á¿ÌµÄ²¿·Ö¿ÉÒÔÓÃÄÚǶ»ã±àÀ´ÖØÐ´,ÒÔ´øÀ´ËÙ¶ÈÉϵÄÏÔ×ÅÌá¸ß.µ«ÊÇ,¿ª·¢ºÍ²âÊÔ»ã±à´úÂëÊÇÒ»¼þÐÁ¿àµÄ¹¤×÷,Ëü½«»¨·Ñ¸ü³¤µÄʱ¼ä,Òò¶øÒªÉ÷ÖØÑ¡ÔñÒªÓûã±àµÄ²¿·Ö.ÔÚ³ÌÐòÖÐ,´æÔÚÒ»¸ö80-20Ô­Ôò,¼´20%µÄ³ÌÐòÏûºÄÁË80%µÄÔËÐÐʱ¼ä,Òò¶øÎÒÃÇÒª¸Ä½øÐ§ÂÊ,×îÖ÷ÒªÊÇ¿¼ÂǸĽøÄÇ20%µÄ´úÂë.

8 Ìá¸ßÑ­»·ÓïÑÔµÄЧÂÊ

ÔÚ C ÓïÑÔÖÐÑ­»·Óï¾äʹÓÃÆµ·±,Ìá¸ßÑ­»·ÌåЧÂʵĻù±¾°ì·¨¾ÍÊǽµµÍÑ­»·ÌåµÄ¸´ÔÓÐÔ:

(1)ÔÚ¶àÖØÑ­»·ÖÐ,Ó¦½«×µÄÑ­»··ÅÔÚ×îÄÚ²ã,×î¶ÌµÄÑ­»··ÅÔÚ×îÍâ²ã.ÕâÑù¿ÉÒÔ¼õÉÙ CPU¿çÇÐÑ­»·µÄ´ÎÊý.ÈçÀý 1-1 µÄЧÂÊ±È 1-2 µÄЧÂÊÒªµÍ:

for (j = 0; j < 30; j++)
{
for (i = 0; i < 10; i++)
{
... ...
}

} // Àý×Ó 1-1
for (i = 0; i < 10; i++)
{
for (j = 0; j < 30; j++)
{
... ...
}

} // Àý×Ó 1-2

Àý 1-1³¤Ñ­»·ÔÚÍâ²ã,ЧÂʵÍ;Àý 1-2³¤Ñ­»·ÔÚÄÚ²ã,ЧÂʸß.

(2) Èç¹ûÑ­»·ÌåÄÚÓÐÂß¼­ÅжÏ,²¢ÇÒÑ­»·´ÎÊý´ó,Ó¦°ÑÑ­»·ÅжÏÒÆµ½Ñ­»·ÌåÍâ.ÈçÀý 2-1±ÈÀý 2-2 ¶àÖ´ÐÐÁË K-1 ´ÎÅжÏ,¶øÇÒÓÉÓÚǰÕ߯µ·±½øÐÐÅжÏ,´ò¶ÏÁËÑ­»·"Á÷Ë®Ïß"×÷Òµ,ʹµÃ±àÒëÆ÷²»ÄܶÔÑ­»·½øÐÐÓÅ»¯´¦Àí,½µµÍÁËЧÂÊ

for (i = 0; i < 10000; i++)
{
if (Ìõ¼þ)
Óï¾ä;
else
Óï¾ä;
} // Àý×Ó 2-1 ³ÌÐò¼ò½àµ«Ð§ÂʵÍ
if (Ìõ¼þ)
{
for (i = 0; i < 10000; i++)
Óï¾ä;
}
else
{
for (i = 0; i < 10000; i++)
Óï¾ä;
} // Àý×Ó 2-2 ³ÌÐò²¿¼ò½àµ«Ð§Âʸß

9 Ìá¸ß switch Óï¾äµÄЧÂÊ

switch Óï¾äÊÇ C ÓïÑÔÖг£ÓõÄÑ¡ÔñÓï¾ä, ÔÚ±àÒëʱ»á²úÉúif- else- if ǶÌ×´úÂë,²¢°´ÕÕ˳Ðò½øÐбȽÏ,·¢ÏÖÆ¥Åäʱ,¾ÍÌø×ªµ½Âú×ãÌõ¼þµÄÓï¾äÖ´ÐÐ.

µ± switch Óï¾äÖÐµÄ case ±êºÅºÜ¶àʱ,ΪÁ˼õÉٱȽϵĴÎÊý,¿ÉÒÔ°Ñ·¢ÉúƵÂÊÏà¶Ô¸ßµÄÌõ¼þ·Åµ½µÚһλ»òÕß°ÑÕû¸ö switch Óï¾äת»¯Ç¶Ì× switch Óï¾ä.°Ñ·¢ÉúƵÂÊ¸ßµÄ case ±êºÅ·ÅÔÚ×îÍâ²ãµÄ switch Óï¾äÖÐ,·¢ÉúÏà¶ÔƵÂÊÏà¶ÔµÍµÄ case ±êºÅ·ÅÔÚÁíÍâµÄ switch Óï¾äÖÐ.ÈçÀý 3 ÖÐ,°Ñ·¢ÉúÂʸߵÄcase ±êºÅ·ÅÔÚÍâ²ãµÄ switch Óï¾äÖÐ,°Ñ·¢ÉúƵÂʵ͵ķÅÔÚȱʡ µÄ(default)ÄÚ²ã switch Óï¾äÖÐ

switch (±í´ïʽ)
{
case Öµ1:
Óï¾ä1: break;
case Öµ2£º
Óï¾ä2£ºbreak;
... ...
/*°Ñ·¢ÉúƵÂʵ͵ķÅÔÚÄÚ²ãµÄswitchÓï¾äÖÐ*/
default:
switch (±í´ïʽ)
{
case Öµn:
Óï¾än: break;
case Öµm:
Óï¾äm: break;
... ...
}
}

Àý×Ó3 ʹÓÃǶÌ×switchÓï¾äÌá¸ß³ÌÐòÖ´ÐÐЧÂÊ.

10 ±ÜÃâʹÓñê×¼¿â

ʹÓà CÓïÑÔ±ê×¼¿â¿ÉÒԼӿ쿪·¢½ø¶È,µ«ÓÉÓÚ±ê×¼¿âÐèÒªÉè·¨´¦ÀíÓû§ËùÓпÉÄÜÓöµ½µÄÇé¿ö,ËùÒԺܶà±ê×¼¿â´úÂëºÜ´ó.±ÈÈç±ê×¼¿âÖÐµÄ sprintfº¯Êý·Ç³£´ó.Õâ¸öÅÓ´óµÄ´úÂëÖÐÓкܴóÒ»²¿·ÖÓÃÓÚ´¦Àí¸¡µãÊý,Èç¹û³ÌÐòÖв»ÐèÒª¸ñʽ»¯¸¡µãÊýÖµ( Èç%f),³ÌÐòÉè¼ÆÈËÔ±¾Í¿ÉÒÔ¸ù¾Ýʵ¼ÊÇé¿öÓÃÉÙÁ¿µÄ´úÂëʵÏÖÕâ¸ö¹¦ÄÜ.

11 ²ÉÓÃÊýѧ·½·¨ÓÅ»¯³ÌÐò

ÊýѧÊǼÆËã»ú֮ĸ,ûÓÐÊýѧµÄÒÀ¾ÝºÍ»ù´¡,¾ÍûÓмÆËã»úµÄ·¢Õ¹,ËùÒÔÔÚ±àд³ÌÐòµÄʱºò,²ÉÓÃһЩÊýѧ·½·¨»á¶Ô³ÌÐòµÄÖ´ÐÐЧÂÊÓÐÊýÁ¿¼¶µÄÌá¸ß.ÓÐʱºòÕâ¸öÎÊÌâ³£³£±»´ó¼ÒºöÂÔ, ¶ÔÓÚûÓо­ÑéµÄ³ÌÐòÔ±À´Ëµ¸üÊÇÈç´Ë.ÀýÈç:Çó 1~100 µÄºÍ

sum = 100*(100+1)/2; Êýѧ¹«Ê½. (a1 + an)*n/2

ʹÓÃCÓïÑÔµÄλ²Ù×÷¿ÉÒÔ¼õÉÙ³ý·¨ºÍȡģµÄÔËËã.ÔÚ¼ÆËã»ú³ÌÐòÖÐÊý¾ÝµÄλÊÇ¿ÉÒÔ²Ù×÷µÄ×îСÊý¾Ýµ¥Î»,ÀíÂÛÉÏ¿ÉÒÔÓá°Î»ÔËË㡱À´Íê³ÉËùÓеÄÔËËãºÍ²Ù×÷.Òò¶ø,Áé»îµÄλ²Ù×÷¿ÉÒÔÓÐЧµØÌá¸ß³ÌÐòÔËÐеÄЧÂÊ.±ÈÈçÓÃÓÃλ²Ù×÷Çø´úÌæ³ý·¨:±ÈÈç:128 / 8 ->> 128 >> 3;

ÓÅ»¯Ëã·¨ºÍÊý¾Ý½á¹¹¶ÔÌá¸ß´úÂëµÄЧÂÊÓкܴóµÄ°ïÖú.µ±È»ÓÐʱºòʱ¼äЧÂʺͿռäЧÂÊÊǶÔÁ¢µÄ,´ËʱӦ·ÖÎöÄĸö¸üÖØÒª, ×ö³öÊʵ±µÄÕÛÖÐ.ÁíÍâ,ÔÚ½øÐÐÓÅ»¯µÄʱºò²»ÒªÆ¬ÃæµÄ×·Çó½ô´ÕµÄ´úÂë,ÒòΪ½ô´ÕµÄ´úÂë²¢²»ÄܲúÉú¸ßЧÂʵĻúÆ÷Âë.

12 ´æ´¢Æ÷·ÖÅä

ÓÉÓڳɱ¾ÏÞÖÆ,ǶÈëʽϵͳ´æ´¢Æ÷ÈÝÁ¿ÓÐÏÞ.³ÌÐòÖÐËùÓеıäÁ¿,°üº¬µÄ¿âº¯ÊýÒÔ¼°¶ÑÕ»µÈ¶¼Ê¹ÓÃÓÐÏÞµÄÄÚ´æ:È«¾Ö±äÁ¿ÔÚÕû¸ö³ÌÐò·¶Î§ÄÚ¶¼ÓÐЧ.³ÌÐòÖ´ÐÐÍêºó²Å»áÊÍ·Å;¾²Ì¬±äÁ¿µÄ×÷Ó÷¶Î§Ò²ÊÇÕû¸ö³ÌÐò,Ö»Óоֲ¿±äÁ¿ÖеĶ¯Ì¬±äÁ¿ÔÚº¯ÊýÖ´ÐÐÍêºó»áÊÍ·Å.Òò´Ë, ÔÚ³ÌÐòÖÐÓ¦¾¡Á¿Ê¹Óþֲ¿±äÁ¿,Ìá¸ßÄÚ´æÊ¹ÓÃЧÂÊ.³ÌÐòÖжѵĴóСÊÜÏÞÓÚËùÓÐÈ«¾ÖÊý¾ÝºÍÕ»¿Õ¼ä¶¼·ÖÅäºóµÄÊ£ÓàÁ¿,Èç¹û¶Ñ̫С,³ÌÐò²»Äܹ»ÔÚÐèÒªµÄʱºò·ÖÅäÄÚ´æ.Òò´ËÔÚʹÓà malloc º¯ÊýÉêÇëÄÚ´æÖ®ºóÒ»¶¨ÒªÓà free º¯Êý½øÐÐÊÍ·Å, ·ÀÖ¹ÄÚ´æÐ¹Â¶.

13Ñ¡ÔñºÃµÄÎÞÏÞÑ­»·

ÔÚ±à³ÌÖÐ,ÎÒÃdz£³£ÐèÒªÓõ½ÎÞÏÞÑ­»·,³£ÓõÄÁ½ÖÖ·½·¨ÊÇwhile (1) ºÍ for (;;).ÕâÁ½ÖÖ·½·¨Ð§¹ûÍêȫһÑù,µ«ÄÇÒ»ÖÖ¸üºÃÄØ?È»ÎÒÃÇ¿´¿´ËüÃDZàÒëºóµÄ´úÂë:

±àÒëǰ£º

while (1)£»

±àÒëºó£º

mov eax£¬1

test eax£¬eax

je foo+23h

jmp foo+18h

±àÒëǰ£º

for (;;)£»

±àÒëºó£º

jmp foo+23h

ÏÔÈ»£¬for (;;)Ö¸ÁîÉÙ,²»Õ¼ÓüĴæÆ÷,¶øÇÒûÓÐÅжÏ,Ìø×ª,±Èwhile (1)ºÃ.

14 ʹÓÃMemoization,ÒÔ±ÜÃâµÝ¹éÖØ¸´¼ÆËã

¿¼ÂÇFibonacci(ì³²¨ÄÇÆõ)ÎÊÌâ,FibonacciÎÊÌâÊÇ¿ÉÒÔͨ¹ý¼òµ¥µÄµÝ¹é·½·¨À´½â¾ö:

int fib ( n )
{
if ( n == 0 || n == 1 )
{
return 1;
}
else
{
return fib( n - 2 ) + fib ( n - 1 );
}
}

×¢:ÔÚÕâÀï,ÎÒÃÇ¿¼ÂÇFibonacci ϵÁдÓ1¿ªÊ¼,Òò´Ë,¸ÃϵÁп´ÆðÀ´:1£¬1£¬2£¬3£¬5£¬8£¬¡­

×¢Òâ:´ÓµÝ¹éÊ÷,ÎÒÃǼÆËãfib(3)º¯Êý2´Î,fib(2)º¯Êý3´Î.ÕâÊÇÏàͬº¯ÊýµÄÖØ¸´¼ÆËã.Èç¹ûn·Ç³£´ó,fibº¯ÊýµÄЧÂÊ»á±È½ÏµÍ.MemoizationÊÇÒ»¸ö¼òµ¥µÄ¼¼Êõ,¿ÉÒÔ±»ÓÃÔڵݹé,¼ÓÇ¿¼ÆËãËÙ¶È.fibonacci º¯ÊýMemoizationµÄ´úÂëÈçÏÂ:

int calc_fib ( int n )
{
int val[ n ] , i;
for ( i = 0; i <=n; i++ )
{
val[ i ] = -1; // Value of the first n + 1 terms of the fibonacci terms set to -1
}
val[ 0 ] = 1; // Value of fib ( 0 ) is set to 1
val[ 1 ] = 1; // Value of fib ( 1 ) is set to 1
return fib( n , val );
}

int fib( int n , int* value )
{
if ( value[ n ] != -1 )
{
return value[ n ]; // Using memoization
}
else
{
value[ n ] = fib( n - 2 , value ) + fib ( n - 1 , value ); // Computing the fibonacci term
}
return value[ n ]; // Returning the value
}

³ýÁ˱à³ÌÉϵļ¼ÇÉÍâ,ΪÌá¸ßϵͳµÄÔËÐÐЧÂÊ,ÎÒÃÇͨ³£Ò²ÐèÒª×î´ó¿ÉÄܵØÀûÓø÷ÖÖÓ²¼þÉ豸×ÔÉíµÄÌØµãÀ´¼õСÆäÔËת¿ªÏú,ÀýÈç¼õСÖжϴÎÊý,ÀûÓÃDMA´«Ê䷽ʽµÈ.

¶ÔÓÚǶÈëʽϵͳ,£ÃÓïÑÔÔÚ¿ª·¢ËÙ¶È,Èí¼þ¿É¿¿ÐÔÒÔ¼°Èí¼þÖÊÁ¿µÈ·½Ãæ¶¼ÓÐ×ÅÃ÷ÏÔµÄÓÅÊÆ.µ±È»´úÂëÓÅ»¯µÄ·½·¨»¹Óкܶà,ÕâÀïÖ»ÊÇд³öÁËÒ»²¿·Ö,Ï£ÍûÄÜΪ¿ª·¢ÈËÔ±ÌṩһЩ°ïÖú,Ò²»¶Ó­´ó¼ÒÁôÑÔ½»Á÷.

Ô­ÎÄ£ºhttps://blog.csdn.net/u013467442/article/details/47071171

 
   
4029 ´Îä¯ÀÀ       27
 
Ïà¹ØÎÄÕÂ

ÔÆ¼ÆËãµÄ¼Ü¹¹
¶ÔÔÆ¼ÆËã·þÎñÄ£ÐÍ
ÔÆ¼ÆËãºËÐļ¼ÊõÆÊÎö
Á˽âÔÆ¼ÆËãµÄ©¶´
 
Ïà¹ØÎĵµ

ÔÆ¼ÆËã¼ò½é
ÔÆ¼ÆËã¼ò½éÓëÔÆ°²È«
ÏÂÒ»´úÍøÂç¼ÆËã--ÔÆ¼ÆËã
ÈídzÎöÔÆ¼ÆËã
 
Ïà¹Ø¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤