알고리즘 문제/C++

[백준] 1065번 : 한수 - C++

lingk 2020. 6. 22. 16:46
#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를 더해주어야한다.

반응형