#include <iostream>
using namespace std;
int main(void) {
int num;
cin >> num;
int han=0;
if (num < 100) {
han = num;
}
else {
for (int i = 100; i <= num; i++) {
int a = i/ 100;
int b = (i / 10) % 10;
int c = i % 10;
if (a - b == b - c) {
han++;
}
}
han += 99;
}
cout << han;
}
100보다 작은 수는 모두 한수이다. 따라서 입력 받은 num이 100보다 작은 자연수일 경우, 한수의 개수는 num이다.
100보다 큰 경우는 (백의 자리수-십의 자리수) 와 (십의 자리수-일의 자리수) 같게되면 한수이다.
따라서 100이상의 수를 입력 받았을 때 100부터 num까지 그 수가 한수인지 판별하고 한수라면 변수 han을 1증가 시킨다. 이때 99까지는 모두 한수이므로 변수 han에 99를 더해주어야한다.
반응형
'알고리즘 문제 > C++' 카테고리의 다른 글
[프로그래머스] Level1 : 크레인 인형뽑기 게임 - C++ (0) | 2020.06.30 |
---|---|
[백준] 2775번 : 부녀회장이 될테야 - C++ (0) | 2020.06.27 |
[백준] 1316번 : 그룹 단어 체커 - C++ (0) | 2020.06.26 |
[백준] 1157번 : 단어공부 - C++ (0) | 2020.06.26 |
[백준] 2839번 : 설탕배달 - C++ (0) | 2020.06.22 |