개발개발자

한수 (1065번) 본문

알고리즘(Algorithm)

한수 (1065번)

맛두부 2017. 3. 4. 14:24

1. 문제


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



2. 포인트
   1) 자릿수 분할

        - 100의 자리 이상 분할하여 한수 검증
        - 100 미만 숫자는 한수로 처리

   

3. 소스코드



#include <stdio.h>


int main()

{

int hanNum;

int cnt = 0;

int d1, d2;

int a, b, c;

int num = 100;


scanf("%d", &hanNum);


if (hanNum == 1000)

hanNum--;


if (100 <= hanNum && hanNum <= 999)

{

while (num <= hanNum)

{

a = num / 100;

b = num / 10 - (a * 10);

c = num % 10;


d1 = a - b;

d2 = b - c;


if (d1 == d2)

cnt++;


num++;

}

cnt = cnt + 99;

}

else

cnt = hanNum;


printf("%d", cnt);


return 0;

}

'알고리즘(Algorithm)' 카테고리의 다른 글

더하기 사이클 (1110번)  (0) 2017.03.04
단어의 개수 (1152번)  (0) 2017.03.04
OX퀴즈 (8958번)  (0) 2017.03.04
숫자의 개수 (2577번)  (0) 2017.03.04
셀프 넘버 (4673번)  (0) 2017.03.04
Comments