한수
문제
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오.
풀이방법
풀이 방법
'한수' - 각 자리수가 등차수열인 숫자
* 등차수열 - 연속된 두개의 수 차이가 일정한 수열
ex) 321 (공차 1), 357 (공차 2), 840 (공차 -4)
100 이하는 모두 공차 3자리 수 부터 구분이 가능
접근방법
-> 1자리(1~9), 2자리(10~99)는 모두 공차로 포함
-> 100 이상부터는 100의 자리, 10의 자리, 1의 자리로 구분
-> (100, 10 자리 수 차이) == (10, 1의 자리 수 차이) 동일하면 공차
입력
첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다.
출력
첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다.
예제 입력 1
110
1
210
1000
예제 출력 1
99
1
105
144
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int[] temp = new int[3];
int count = 0;
for (int i = 1; i <= num; i++) {
if (i < 100)
count++;
else {
int a = i / 100;
int b = (i % 100) / 10;
int c = (i % 100) % 10;
if(a - b == b-c)
count++;
}
}
System.out.println(count);
}
}