반응형
문제

문제풀이
문제에서 N은 1000 이하의 자연수이다.
그러면 총 세가지의 경우로 나눠 생각할 수 있다.
1 ~ 9 / 10 ~ 99 / 100 ~ 999 로 나눌 수 있다.
그런데 1 ~ 9는 하나의 숫자 밖에 없기 때문에 자동적으로 한수가 된다.
그리고 10 ~ 99 또한 두가지 숫자 밖에 없기 때문에 무조건 등차수열이 될 수 밖에 없다.
그러면 우리는 100 ~ 999의 경우만 생각을 하면 된다.
hun = i / 100;
ten = (i % 100) / 10;
one = i % 10;
int fir = hun - ten;
int sen = ten - one;
if (fir == sen) {
stan++;
}
이렇게 각 자리의 수를 구한 뒤, 각 자리 끼리 차이를 구하여 만약 차이가 같다면 count를 해주면 된다.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void selfnumber(void);
int main()
{
selfnumber();
return 0;
}
void selfnumber(void) {
int stan = 0;
int input = 0;
int cal = 0;
int one = 0, ten = 0, hun = 0;
scanf("%d", &input);
for (int i = 1; i <= input; i++) {
if (i < 100) {
stan++;
}
else if (i < 1000 && i >= 100) {
hun = i / 100;
ten = (i % 100) / 10;
one = i % 10;
int fir = hun - ten;
int sen = ten - one;
if (fir == sen) {
stan++;
}
}
}
printf("%d", stan);
}반응형
'알고리즘 > 백준' 카테고리의 다른 글
| 백준 1620번(나는야 포켓몬 마스터 이다솜) c++ (0) | 2023.04.16 |
|---|---|
| 백준 1269번 (대칭 차집합) c++ (0) | 2023.04.14 |
| 백준 1018번 (체스판 다시 칠하기) c++ (0) | 2023.04.09 |
| 백준 11866번 (요세푸스 문제 0) c++ (0) | 2023.02.16 |
| 백준 11723번 (집합) c++ (0) | 2023.02.15 |
댓글