[BOJ_step_06]함수 - 한수
한수
1. 문제 설명 및 풀이
입력 조건
첫째 줄에 1000 보다 작거나 같은 자연수 N이 주어진다.
출력 조건
첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다.
문제의 설명이 너무 빈약한것 같다. 문제를 이해하기가 너무 어려웠었다. 한 자리 숫자, 두 자리 숫자는 어떻게 되는걸까… 하고 고민을 많이했다. 그래서 질문 검색을 좀 참고 했다. 한 자리 숫자는 수열의 길이가 1이라 무조건 참이고, 두 자리 숫자는 공차가 양 또는 음인 수열의 길이가 2인 등차수열이다. 따라서 1~99까지는 모두 등차수열이다. 따라서 100부터 1000까지의 숫자 중 한수를 찾으면 되는 문제이다.
각 자리수의 차이가 같으면 한수!
#include<cstdio>
int cnt;
void Process(int n) {
for (int i = 1; i <= n; i++) {
if (i < 100)cnt++;
if (i >= 100 && i < 1000)
if (i % 10 - (i / 10) % 10 == (i / 10) % 10 - i / 100)
cnt++;
}
printf("%d", cnt);
}
int main() {
int n;
scanf("%d", &n);
Process(n);
return 0;
}
댓글남기기