[伯俊]BOJ 1065 JAVA


BOJ 1065

質問する


正の整数Xの各位置が等差数列である場合、その数を1つの数と呼ぶ.等差数列とは、連続する2つの数の差が一定の数列を指す.Nが与えられた場合、プログラムを作成し、1以上、N以下の数値を出力します.

入力


最初の行は、1000以下の自然数Nを与える.

しゅつりょく


最初の行は、1以上、N以下の数値を出力します.

サンプルI/O



ソースコード

import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int n = Integer.parseInt(br.readLine());
        System.out.println(getAnswer(n));
    }

    private static int getAnswer(int num) {
        int cnt = 0;

        if (num < 100) {
            return num;
        } else {
            cnt = 99;

            if (num == 1000) { //예외처리
                num = 999;
            }

            for (int i = 100; i <= num; i++) {
                int third = i / 100; // 백의 자리
                int second = (i / 10) % 10; // 십의 자리
                int first = i % 10; // 일의 자리

                if (third - second == second - first) {
                    cnt++;
                }
            }
        }
        return cnt;
    }
}

Comment