728x90
연속된 두개의 수의 차이가 일정하면 등차수열이라고 합니다.
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 |