| »ç·Ê 1 | »ç·Ê 2 | »ç·Ê 3 | ÀϹݱÔÄ¢ |

·Î±×Çü O(logN) ¾Ë°í¸®Áò (»ç·Ê 3)

¡á ºü¸¥ Áö¼ö°è»ê ÇÔ¼ö

 

-------------------------------------------------------------
long int Pow( long int X, unsigned int N)
        {      if( N == 0 ) return 1;
                if( N == 1 ) return X;
                if( IsEven( N )) return( Pow( X*X, N/2 ));
                else return( Pow( X*X, N/2 ) * X);
        }
------------------------------------------------------------- 

  

<trace>
°öÇϱ⠼öÇà 6ȸ

 Pow(2, 64) ¡æ ¨ç Pow(2*2, 32) ¡æ ¨è Pow(4*4, 16) ¡æ ¨é Pow(16*16, 8)
             ¡æ ¨ê Pow(256*256, 4) ¡æ ¨ë Pow(216*216, 2)  ¡æ ¨ì Pow(232*232, 1)

  • X64À» for loop(Pow = Pow * X)À¸·Î °è»êÇϸé 64ȸ °öÇϱ⠼öÇà,
  • ºü¸¥ Áö¼öÇÔ¼ö´Â log26¡Ö6ȸ ¼öÇàÀ¸·Î °è»ê,
  • ½Â¼ö°¡ 1020À̸é 1020ȸ °ö¼ÀÀ» ÇØ¾ß ÇϹǷΠÄÄÇ»ÅÍ·Î ¼öÇàÀÌ ºÒ°¡´ÉÇÏ´Ù.
  • ±×·¯³ª ºü¸¥ Áö¼öÇÔ¼ö´Â 20log10¡Ö64ȸ ¼öÇàÀ¸·Î °è»êÇÑ´Ù.
  • ¿©±â¿¡¼­ ¾Ë°í¸®Áò ºÐ¼®ÀÇ Çʿ伺À» ÀÌÇØÇÒ ¼ö ÀÖ´Ù.