[C#] 하샤드 수

Connected Brain·2025년 7월 1일

코딩 테스트

목록 보기
14/67

하샤드 수

문제 설명

양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다.
예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다.
자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.

풀이

    public bool Solution(int x)
    {
        bool answer = false;
        
        string s = x.ToString();

        int sumOfDigits = 0;

        foreach (char c in s)
        {
            sumOfDigits += int.Parse(c.ToString());
        }

        if (sumOfDigits == 0)
            return false;
        
        if(x % sumOfDigits == 0)
            answer = true;
        
        
        return answer;
    }
  • 입력받은 숫자를 문자열로 변환 후 문자열의 각 자리에 따라 반복문을 실행
  • 각 자리의 char 값을 int 값으로 형변환하여 sumOfDigits 변수에 더해줌
  • 해당 값으로 x를 나눈 값의 나머지가 없는지 확인하여 결과 값을 반환

0개의 댓글