본문 바로가기

자바/문제풀이

[JAVA | 백준 1065] 한수

등차수열

연속된 두 개의 수의 차이가 일정한 수열

1,3,5,7,9....

 

한수

어떤 양의 정수 X의 각 자릿수가 등차수열을 이룰 때 X를 한수라고 정의

 

문제 해설

N입력시 1~N 사이의 수 중 한수의 개수를 출력하라.

단, N은 1000이하의 자연수

 

일단 N이 1~99사이의 수인 경우 자릿수는 1개 혹은 2개이므로 무조건 한수이다.

N이 세자리수인경우에는 N=abc라고 할때, b-c = c-b 이면 N은 한수라고 볼 수 있다.

 

import java.util.Scanner;

public class Main {
    
    public static int hansu(int N){
        int count = 0;
        
        if(N<100){
            return N;
        }
        else{
            count = 99;
            for(int i=100; i<=N; i++){
                int n3 = i/100;
                int n2 = (i/10)%10;
                int n1 = i%10;
                
                if((n3-n2)==(n2-n1))count++;
                        
            }
        }
        return count;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println(hansu(sc.nextInt()));
        sc.close();
    }
}

 

sout문에 바로 hansu(sc.nextInt()) 넣을 수 있는 걸 배웠다.