https://www.acmicpc.net/problem/1065
어떤 수의 각 자리수가 등차수열을 이루는지 확인하는 문제.
hansu라는 함수를 따로 만들어 main에서 출력하는 형태로 만들어 보았다.
우선 1~99까지는 모두 등차수열을 이루기 때문에(한자리, 혹은 두자리 수이므로) 파라미터로 받은 숫자를 그대로 return해준다.
그 이상의 숫자를 확인할때는 먼저 count에 99를 저장한 후 for문으로 각 자리수를 구해 등차수열이 성립 되는지 확인한다. 각 자리수의 차가 같으면 count++을 해준다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Q_1065 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num = Integer.parseInt(br.readLine());
System.out.println(hansu(num));
}
static int hansu(int num) {
int count = 0;
if (num < 100) {
return num;
} else {
count = 99;
if (num == 1000) {
num = 999;
}
for (int i = 100; i <= num; i++) {
// 100의 자리
int a = i / 100;
// 10의 자리
int b = (i / 10) % 10;
// 1의 자리
int c = i % 10;
if ((a - b) == (b - c)) {
count++;
}
}
}
return count;
}
}