1065

qkrrnjswo·2023년 4월 14일
0

백준, 프로그래머스

목록 보기
21/53

문제1065 한수

어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오.

  1. 1 ~ 99 까지는 한수이기 때문에 걸러준다.
  2. 나머지 수들은 한자리씩 차이를 비교해 준다
		int tmpN = 0;
        int tmp = 0;
        int d = 0;
        int count = 99;

        if (n <= 99) {
            return n;
        } else {
            for (int i = 100; i <= n; i++) {
                tmpN = i;
                tmp = tmpN % 10;
                tmpN /= 10;
                d = tmpN % 10 - tmp;

                while (tmpN != 0) {
                    tmp = tmpN % 10;
                    tmpN /= 10;

                    if (d != tmpN % 10 - tmp && tmpN != 0) {
                        tmp = -1;
                        break;
                    }
                }
                if (tmp != -1) {
                    count++;
                }
            }
        }
        
        System.out.println(count);
        

0개의 댓글