끄적끄적 코딩
article thumbnail
Published 2019. 4. 7. 18:00
[C++] 백준 1065번 한수 알고리즘

연속된 두개의 수의 차이가 일정하면 등차수열이라고 합니다.

1의자리수와 10의자리수는 항상 두 수가 연속하기에 등차수열입니다.

100의 자리 이상부터 등차수열인지 확인을 하면 됩니다.

 

#include  
using namespace std; 

int check[3]; 

int func(int x) 
{ 
    int count = 0; 
    if (x < 100) { 
        count = x; 
    } 
    else { 
        count += 99; 
        for (int j = 100; j <= x; ++j) { 
            check[0] = j / 100; 
            check[1] = (j % 100 / 10); 
            check[2] = j % 10; 
            if ((check[0] - check[1]) == (check[1] - check[2])) { 
                ++count; 
            } 
            else if((check[2] - check[1]) == (check[1] - check[0])) { 
                ++count; 
            } 
        } 
    } 
    return count; 
} 

int main(int argc, char *argv[]) 
{ 
    int x; 
    cin >> x; 

    cout << func(x) << endl; 

    return 0; 
}

'알고리즘' 카테고리의 다른 글

[C++] 백준 9048번 동전  (0) 2019.05.01
[C++] 백준 1965번 상자넣기  (0) 2019.04.10
[C++] 백준 2446번 별 찍기 - 9  (0) 2019.04.06
[C++] 백준 2445번 별 찍기 - 8  (0) 2019.04.06
[C++] 백준 1463번 1로 만들기  (0) 2019.04.05

검색 태그