알고리즘/백준

백준 1065_한수

래울 2020. 10. 9. 10:54

https://www.acmicpc.net/problem/1065

 

1065번: 한수

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

www.acmicpc.net

한수?

 

한수는 각 자리수가 등차수열을 이루는 수를 칭한다.

또한 한자리수와 두자리수의 경우 모두 한수에 포함된다.

ex) 135 +2의 공차를 가짐, 840 -4의 공차를 가짐

 

 

문제에서 N의 범위를 1~1000으로 줬기 떄문에 아래와 같이 풀이 할 수 있다.

 

#include <stdio.h>
int check_hansu(int num){
        int a=num/100;
        int b=(num%100)/10;
        int c=num%10;
        if(a+c == 2*b)
                return 1;
        return 0;
}
int cnt_hansu(int n){
        int i;
        int hansu=99;
        if(n<100)
                return n;
        for(i=100; i<=n; i++){
                if(check_hansu(i))
                        hansu++;
        }
        return hansu;
}
int main()
{
        //한수
        int N; //1~1000
        scanf("%d", &N);
        printf("%d\n", cnt_hansu(N));
        return 0;
}