666이 연속으로 들어가는 종말수를 찾는 문제였다.
예전에 만들어둔 자릿수를 모두 더하는 코드를 조금 변형해서 안 귀찮게 풀었다.
#include <stdio.h>
#include <math.h>
int check(int num) {
int i, j;
int six_cnt =0;
for (i = 0; num / (int)pow(10, i) > 0; i++);
for (j = 0; j < i; j++) {
if (num % 10 == 6)
six_cnt++;
else
six_cnt = 0;
if (six_cnt >= 3)
return 1;
num /= 10;
}
return 0;
}
int main() {
int i , input , counter=0;
scanf("%d", &input);
for (i = 0; counter < input; i++) {
if (check(i))
counter++;
}
printf("%d", i-1);
}
c언어는 bool 을 사용하기 위해서는 헤더를 추가해야 한다는걸 알게 되었다. 그래서 귀찮아서 int형 함수를 사용했다.
'백준' 카테고리의 다른 글
[백준 9370] 미확인 도착지 (C++) (0) | 2021.09.23 |
---|---|
[백준 1238] 파티 (C++) (0) | 2021.09.22 |
[백준 1504] 특정한 최단경로 (C++) (0) | 2021.09.20 |
[백준] 1018 체스판 다시 칠하기 (0) | 2020.08.12 |
[백준 2753] 윤년 C++ (0) | 2020.04.24 |