C# 재귀를 활용한 자릿수 합 계산
이번 글에서는 C#의 재귀(Recursion) 기법을 활용해 주어진 숫자의 각 자릿수를 모두 더하는 방법을 알아보겠습니다. 재귀를 사용하면 반복문 없이도 간결하고 직관적인 코드로 자릿수 합을 계산할 수 있습니다.
먼저 자릿수 합을 구할 숫자를 설정합니다.
int val = 789;
Console.WriteLine("Number: {0}", val);
재귀 함수의 동작 원리
다음 메서드는 입력받은 숫자를 재귀적으로 확인하며 자릿수 합을 계산합니다. 핵심 원리는 다음과 같습니다.
- val % 10: 숫자의 마지막 자릿수를 추출합니다.
- val / 10: 정수 나눗셈을 통해 마지막 자릿수를 제거합니다.
- 숫자가 0이 되면 재귀 호출을 멈추고 0을 반환하며 종료됩니다.
public int addFunc(int val) {
if (val != 0) {
return (val % 10 + addFunc(val / 10));
} else {
return 0;
}
}예를 들어 789가 입력되면 9 → 8 → 7 순서로 자릿수가 추출되며, 재귀 호출이 거듭되면서 이 값들이 차례대로 더해집니다.
전체 예제 코드
다음은 C#에서 재귀를 사용하여 숫자의 자릿수 합을 구하는 완성된 코드입니다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Demo {
class MyApplication {
static void Main(string[] args) {
int val, result;
Calc cal = new Calc();
val = 789;
Console.WriteLine("Number: {0}", val);
result = cal.addFunc(val);
Console.WriteLine("Sum of Digits in {0} = {1}", val, result);
Console.ReadLine();
}
}
class Calc {
public int addFunc(int val) {
if (val != 0) {
return (val % 10 + addFunc(val / 10));
} else {
return 0;
}
}
}
}
실행 결과
Number: 789
Sum of Digits in 789 = 24
실행 결과를 보면 789의 각 자릿수인 7 + 8 + 9 = 24가 정확하게 계산된 것을 확인할 수 있습니다. 이처럼 재귀 함수를 활용하면 자릿수 처리 로직을 짧고 명확하게 구현할 수 있습니다.