Cute Running Puppy

algorithm/Baekjoon

[c언어] 백준 1065_한수

R.silver 2021. 7. 24. 13:24
반응형

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

 

1065번: 한수

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

www.acmicpc.net

풀이

#include <stdio.h>
int main(void)
{
    int n, cnt;
    int a, b, c;

    scanf("%d", &n);

    if (n < 100)
        cnt = n;
    else
    {
        cnt = 99;

        for (int i = 100; i <= n; i++)
        {
            a = i / 100; //백의 자리
            b = (i % 100) / 10; //십의 자리
            c = i % 10; //일의 자리

            if ((a + c) == 2 * b) //등차 중항
                cnt++;
        }
    }
    printf("%d", cnt);
}

입력 받은 n이 100 이상이면 각 자리수를 나누어주고

등차 중항 공식 ( a + c ) / 2 = b 을 활용하여 등차수열을 판단한다. 

반응형