티스토리 뷰

Algorithm/Programmers

[프로그래머스] 하샤드 수 : C++

감성적인 개발자 2021. 8. 11. 22:19

https://programmers.co.kr/learn/courses/30/lessons/12947

 

코딩테스트 연습 - 하샤드 수

양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하

programmers.co.kr

#include <string>
#include <vector>
#include <iostream>

using namespace std;

bool solution(int x) {
    int div = 0, origin_x = x;

    for(int i = 10; i < 100000; i *= 10)
        div += (x % i) / (i/10);

    if(origin_x % div == 0) 
        return true;
    else 
        return false;
}

x의 값에서 각 자리 수의 합을 구하는 과정을 구해야한다.

 

나누기 위한 분자 div를 구하는 과정은 다음과 같다

259라는 수에서 2, 5, 9 를 추출

(259 % 10) / 1       =  9 / 1     =  9

(259 % 100) / 10    = 59 / 10   =  5

(259 % 1000) / 100 = 259 / 100 = 2

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함