반응형
자연수 N의 k승을 구하는 프로그램을 만들어보자. (단, k≥0)
N^k로 거듭제곱함수인데, 이를 재귀함수로 나타내보자.
재귀함수란?
자기 자신을 호출하는 함수를 말한다.
N^k로 거듭제곱함수인데, 이를 재귀함수로 나타내보자.
재귀함수란?
자기 자신을 호출하는 함수를 말한다.
코드 (Code)
#include <stdio.h> int square(int, int); int main(void) { int N=0, cnt; while(N<1) // 자연수가 아닐 경우 N값을 다시 받기 위한 while문 { printf("제곱할 자연수를 입력하세요: "); scanf("%d",&N); } printf("몇 승 하시겠습니까?: "); scanf("%d",&cnt); printf("%d^%d = %d\n",N,cnt,square(N,cnt)); // square 함수 호출 return 0; } int square(int N, int cnt) // 거듭제곱을 구하는 함수 { if(cnt==0) // cnt가 0이면 1을 리턴 return 1; else // cnt가 0을 초과할 경우 return N*square(N,--cnt); // 자기 자신인 square함수를 부르고, cnt의 값을 1 감소 }
결과 (Result)
제곱할 자연수를 입력하세요: -1
제곱할 자연수를 입력하세요: 2
몇 승 하시겠습니까?: 10
2^10 = 1024
제곱할 자연수를 입력하세요: -1
제곱할 자연수를 입력하세요: 2
몇 승 하시겠습니까?: 10
2^10 = 1024
반응형