백준 1065 - 한수 (실버4)
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오
99까지는 언제나 한수이다. 그러므로 주어진 정수가 100보다 작으면 정수의 값이 즉 한수의 수이다.
100부터 탐색을 하는데 백의 자리, 십의 자리, 일의 자리를 따로따로 관찰하기 위해 /와 %를 적절히 이용해서 구한다.
(십의 자리 수-일의 자리수)와 (일의 자리 수-십의 자리수) 값이 같으면 한수이다.
#include <iostream>
#include <algorithm>
#include <stdio.h>
#include <vector>
using namespace std;
int main() {
int n;
int result = 0;
int x = 0;
int y = 0;
int z = 0;
scanf("%d", &n);
if (n<100) {
result = n;
}
else {
result = 99;
for (int i = 100; i <= n; i++) {
x = i / 100;
y = (i%100) / 10;
z = (i%100) % 10;
if ((y - x) == (z - y)) {
result++;
}
}
}
printf("%d", result);
return 0;
}
PREVIOUS[C/C++]백준 10972
NEXT[C/C++]백준 15649