반응형
코드를 보기 전에: 이 문제는 브루트포스의 대입하는 사고와 수학적 사고가 같이 필요한 문제였다.
666이 들어간 숫자를 찾으려면 1000으로 나눠서 나머지가 666이 나와야 한다.
6660같은 경우에는 1000으로 나눈 나머지가 666이지 않으므로, 수학적 사고도 필요하다.
이럴때는 나누기 10을 하면 된다.
코드:
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 | #include <stdio.h> #include <math.h> int main() { int res = 665; int num; scanf("%d", &num); int a = 0; while (1) { if (a == num) { printf("%d", res); break; } res++; for (int i = 0; i <= 10; i++) { if (res / (int)pow(10, i) % 1000 == 666) // 가나다라마 이렇게 5글자가 있을때, i가 0일때는 다라마 % 1000이고, i가 1일때는 나다라 % 1000이다. { a++; break; } } } } | cs |
반응형