티스토리 뷰
728x90
문제 링크
https://www.acmicpc.net/problem/1065
1065번: 한수
어떤 양의 정수 X의 자리수가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
100 미만의 모든 수는 한수입니다.
1000은 한수가 아닙니다.
따라서 $n \geq 100$인 경우 1000을 제외한 100 ~ n까지만 확인해보면 됩니다.
정답 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#include <iostream>
#include <string>
using namespace std;
int n;
int ans = 99;
int main() {
cin >> n;
if (n < 100) { cout << n; return 0; }
for (int i = 100; i < n + 1; i++) {
if (i == 1000) break;
int a = i % 10;
int b = i % 100 / 10;
int c = i % 1000 / 100;
if (a - b == b - c) ans++;
}
cout << ans;
}
|
cs |
728x90
'알고리즘 > 문제 풀이' 카테고리의 다른 글
[2019 SCCC] 백준 17127 벚꽃이 정보섬에 피어난 이유 (2) | 2019.05.24 |
---|---|
[BOJ] 백준 1018 체스판 다시 칠하기 (0) | 2019.05.18 |
[BOJ] 백준 2941 크로아티아 알파벳 (0) | 2019.05.18 |
[BOJ] 백준 2902 KMP는 왜 KMP일까? (0) | 2019.05.18 |
[BOJ] 백준 11365 !밀비 급일 (0) | 2019.05.18 |
댓글