[Baekjoon 백준] 1065번 : 한수
- 알고리즘
- 2017. 10. 16. 22:23
1065번 : 한수 |
BAEKJOON ONLINE JUDGE (백준 문제풀이 채점 사이트)
문제링크
https://www.acmicpc.net/problem/1065
한수는 "각 자리수들이 등차수열을 이루는 수"이다.
등차수열이란 "연속하는 두 항의 차이가 모두 일정한 수열"을 뜻한다.
예를 들어 123 은 백의 자리 1과 십의 자리 2는 1의 차이가 나며,
십의 자리 2와 일의 자리 3이 1의 차이가 나므로 등차수열이 성립하고,
한수라고 볼수 있다.
한 자리 수는?
뒤 숫자가 없기 때문에 등차수열이 성립한다.
두 자리 수는?
숫자의 차이가 어떤 숫자가 나오더라도 세 번째 수가 없기 때문에 성립한다.
그러므로 1~99까지는 모두 한수이다.
우리가 구하고자 하는 것은 N이 주어질 때 1~ N까지의 한수를 카운트 한 값이다.
N의 최대값이 1000이기 때문에 결국 세 자리수의 한수만 구하면 답을 구할 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 |
#include <std io.h>
int main(void)
{
int N,cnt;
int a, b, c;
scanf("%d", &N);
if (N < 100)
{
printf("%d", N);
}
else
{
cnt = 99;
for (int i = 100; i <= N; i++)
{
a = i / 100; // 100의 자리
b = (i / 10) % 10; // 10의 자리
c = i % 10; // 1의 자리
if ((a - b) == (b - c))
{
cnt++;
}
}
printf("%d", cnt);
}
return 0;
} |
cs |
'알고리즘' 카테고리의 다른 글
[Baekjoon 백준] 1237번 : 정ㅋ벅ㅋ (0) | 2017.10.17 |
---|---|
[Baekjoon 백준] 1008번 : A/B (0) | 2017.10.16 |
[Baekjoon 백준] 4673번: 셀프 넘버 (0) | 2017.10.16 |
프로그래밍 채점 사이트 (0) | 2017.10.14 |
C언어의 scanf, C++의 cin 성능 비교 (0) | 2017.09.29 |
이 글을 공유하기