어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다.
등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다.
N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를
출력하는 프로그램을 작성하시오.
110
99
210
105
일단 두 자릿수까지는 모두 등차수열에 만족하니까 100보다 작으면 카운트해주자.
그다음 1,000보다 작거나 같은 값까지만 입력되니 세 자릿수만 고려해주면 된다.
그중에서 등차수열을 만족하는 값만 카운트해주자.
const input = require('fs').readFileSync('/dev/stdin').toString().trim();
const number = Number(input);
let sum = 0;
for (i = 1; i <= number; i++) {
if (i < 100) {
sum++;
} else if (i < 1000) {
const arr = String(i)
.split('')
.map((value) => Number(value));
const [a, b] = [arr[1] - arr[0], arr[2] - arr[1]];
a === b ? sum++ : null;
}
}
console.log(sum);