°è½Â(Factorial)°ú °ÅµìÁ¦°ö(Power)¸¦ °°ÀÌ ¼Ò°³ÇÏ´Â ÀÌÀ¯´Â ÀÌ µÎ ¾Ë°í¸®Áò¿¡¼ °øÅëÀûÀ¸·Î ÇÔ¼öÀÇ Àç±Í(ȤÀº ¼øÈ¯)°¡ »ç¿ëµÇ±â ¶§¹®ÀÌ´Ù. Àç±Í(Recursion)´Â ÇÔ¼ö³»¿¡¼ ÇÔ¼ö ÀÚ½ÅÀ» È£ÃâÇÏ´Â °æ¿ì¸¦ ¸»ÇÑ´Ù. ÁַΠƯÁ¤ÇÑ ÀÛ¾÷À» ¹Ýº¹ÀûÀ¸·Î ¼öÇàÇØ¾ß µÇ´Â °æ¿ì¿¡ À¯¿ëÇÏ°Ô »ç¿ëµÈ´Ù. // power.c : Àç±Í(Recursion)¸¦ ÀÌ¿ëÇÑ °ÅµìÁ¦°ö(Power)ÀÇ °è»ê // °ÅµìÁ¦°öÀÇ °è»êÀº °°Àº ¼ö¸¦ Áö¼ö¹ø °öÇØ ÁÖ¸é µÇ±â ¶§¹®¿¡ // Àç±Í¸¦ ÀÌ¿ëÇØ¼ Áö¼ö¹ø Ƚ¼ö¸¸Å ÇÔ¼ö¸¦ È£ÃâÇØ ÁÖ¸é¼ °öÇØÁÖ¸é µË´Ï´Ù. #include <stdio.h> long int power(int x, int n); void main() { int num, sup; long int value; printf("°ÅµìÁ¦°öÀ» °è»êÇÏ´Â ÇÁ·Î±×·¥ÀÔ´Ï´Ù.\n"); printf("Á¤¼ö°ªÀ» ÀÔ·ÂÇØ ÁÖ¼¼¿ä : "); scanf("%d", &num); printf("Áö¼ö°ªÀ» ÀÔ·ÂÇØ ÁÖ¼¼¿ä : "); scanf("%d", &sup); value = power(num, sup); printf("Á¤¼ö %dÀÇ %d½ÂÀÇ °ªÀº %ldÀÔ´Ï´Ù.\n", num, sup, value); } long int power(int x, int n) { if(!n) return 1; else return x * power(x, n-1); } // factorial.c : Àç±Í(Recursion)¸¦ ÀÌ¿ëÇÑ °è½Â(factorial)ÀÇ °è»ê // °è½ÂÀº ÀÚ¿¬¼ö¿¡ ´ëÇØ¼¸¸ ÇØ´çµÇ±â ¶§¹®¿¡ ºÎÈ£¾ø´Â Á¤¼öÇüÀ¸·Î Á¦ÇÑÀ» Çß¾î¿ä. // °è½Â¿¡¼´Â ÀԷ¹ÞÀº Á¤¼ö¿¡¼ 1¸¸Å¾¿ ÀÛÀº ¼ö¸¦ Àμö·Î ÇØ¼ // Àç±Í¸¦ »ç¿ëÇÏ¿© ÇÔ¼ö¸¦ È£ÃâÇÏ¸é¼ °öÇØÁÖ¸é µË´Ï´Ù. #include <stdio.h> unsigned long factorial(unsigned int n); void main() { int num; unsigned long value; printf("Á¤¼önÀÇ °è½ÂÀ» °è»êÇÏ´Â ÇÁ·Î±×·¥ÀÔ´Ï´Ù.\n"); printf("Á¤¼ö(n)À» ÀÔ·ÂÇØ ÁÖ¼¼¿ä : "); scanf("%d", &num); value = factorial(num); printf("%d!ÀÇ °ªÀº %ldÀÔ´Ï´Ù.\n", num, value); } unsigned long factorial(unsigned int n) { if( n == 1) return 1; else { n *= factorial ( n - 1); return n; } } |