' [C/C++] 백준 1436번 C/C++ 풀이

Programming/C & C++

[C/C++] 백준 1436번 C/C++ 풀이

mdisprgm 2022. 11. 10. 20:04
728x90

첫 숫자인 666부터 하나씩 더해 cnt번째 666을 포함하는 숫자를 찾는 코드를 쓰면 된다.

#include<iostream>

int main() {
	int n;
	std::cin >> n;

	int title = 666;
	int cnt = 1;

	while (cnt < n) {
		int check = ++title;

		// has 666
		while (check > 1000 && check % 1000 != 666 && (check /= 10));
		if (check % 1000 == 666) {
			cnt++;
		}
	}
	std::cout << title;
}

 

 

세 자리 수 중 666이 아니면 확인해볼 필요도 없이 조건에 거짓이므로 check > 1000 이라는 조건과 함께 한 자리씩 빼면서 666이 나오는지 확인하는 코드이다.

728x90

'