[白準1065]片手を探す(正解率53%)


質問する
正の整数Xの各位置が等差数列である場合、その数を1つの数と呼ぶ.等差数列とは、連続する2つの数の差が一定の数列を指す.Nが与えられた場合、プログラムを作成し、1以上、N以下の数値を出力します.
入力
最初の行は、1000以下の自然数Nを与える.
しゅつりょく
最初の行は、1以上、N以下の数値を出力します.
解法

  • 入力したNについては、すべての数字(1からN)をチェックし、各ビット数が等寸法列を構成しているかどうかをチェックし、等寸法列であればCount変数+1を最終計算で出力します.
    1-1. しかし、全ての1から99が等寸法列として認定されているため、Count変数を99に初期化し、N<100でNを出力する
  • 答え
    public static void main(String[] args) throws Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int count =99;
    	
        //N<100이라면 n이 곧 한수의 갯수
        if(n<100) {
            System.out.println(n);
        // N>100이라면 각각 검사하여 Count 변수 출력   
        }else {
            for (int i = 100; i <= n; i++) {
                if ((i / 100) - (i % 100 / 10) == (i % 100 / 10) - (i % 10)) count++;
            }
            System.out.println(count);
        }
    }
    if ((i/100) - (i % 100/10) == (i % 100/10) - (i % 10)) count++; 文法で1行チェックした.
    他人の答え
    探しましたが、参考になることは何もありません.