C#에서 재귀를 사용하여 숫자의 거듭제곱 구하기
프로그래밍에서 재귀(recursion)는 함수가 자기 자신을 반복적으로 호출하며 문제를 해결하는 기법입니다. 이 글에서는 C#에서 재귀 함수를 활용해 숫자의 거듭제곱을 계산하는 방법을 단계별로 살펴보겠습니다.
1. 숫자와 지수 설정
거듭제곱을 계산하려면 먼저 밑(base)과 지수(exponent)를 변수로 선언합니다.
int n = 15; int p = 2;
2. 재귀 메서드 작성
다음으로 위 두 값을 매개변수로 받아 처리하는 재귀 메서드를 작성합니다.
static long power(int n, int p) {
if (p != 0) {
return (n * power(n, p - 1));
}
return 1;
}이 메서드의 핵심은 아래 재귀 호출 부분입니다.
n * power(n, p - 1)
지수 p가 0이 아니면, 현재 값 n에 지수를 하나 줄인 거듭제곱 결과(power(n, p - 1))를 곱하며 자기 자신을 다시 호출합니다. 지수가 0이 되면 1을 반환하며 재귀가 종료되고, 호출 과정에서 쌓인 곱셈 결과들이 차례로 합쳐져 최종 거듭제곱 값이 완성됩니다. 반환 타입을 long으로 선언한 것은 큰 수를 다룰 때 발생할 수 있는 오버플로우를 방지하기 위함입니다.
3. 전체 예제 코드
다음은 숫자의 거듭제곱을 구하는 전체 코드입니다.
예제
using System;
using System.IO;
public class Demo {
public static void Main(string[] args) {
int n = 15;
int p = 2;
long res;
res = power(n, p);
Console.WriteLine(res);
}
static long power(int n, int p) {
if (p != 0) {
return (n * power(n, p - 1));
}
return 1;
}
}출력 결과
225
실행 결과, 15의 2제곱인 225가 정상적으로 출력되는 것을 확인할 수 있습니다. 이처럼 재귀를 활용하면 반복문 없이도 간결하고 직관적인 코드로 거듭제곱을 계산할 수 있습니다.