티스토리 뷰
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
'Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스] 가운데 글자 가져오기 : C++ (0) | 2021.08.11 |
---|---|
[프로그래머스] 최대공약수와 최소공배수 : C++ (0) | 2021.08.11 |
[프로그래머스] 행렬의 덧셈 : C++ (0) | 2021.08.11 |
[프로그래머스] 콜라츠 추측 : C++ (0) | 2021.08.11 |
[프로그래머스] 제일 작은 수 제거하기 : C++ (0) | 2021.08.11 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 부트스트랩
- JSP
- C++
- CS
- Thymeleaf
- svn
- 백준
- SQL
- 오류
- Open API
- 넥사크로
- CSS
- 오라클
- 스프링부트
- JVM
- 프로그래머스
- 인턴
- 환경설정
- 데이터베이스
- 이클립스
- 국비교육
- 스프링
- C
- HeidiSQL
- 네트워크
- Java
- 개발용어
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함