Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 재귀(Recursion)를 사용하여 숫자의 자릿수 합 구하기

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가 정확하게 계산된 것을 확인할 수 있습니다. 이처럼 재귀 함수를 활용하면 자릿수 처리 로직을 짧고 명확하게 구현할 수 있습니다.