팩토리얼 0의 개수2 [백준] 1676번 : 팩토리얼 0의 개수 (C++) 1676번 : 팩토리얼 0의 개수 문제) N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. 입력 : 첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500) 출력 : 첫째 줄에 구한 0의 개수를 출력한다. 풀이) 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 27 28 29 30 31 32 33 34 35 36 37 #include using namespace std; int main() { int n; cin >> n; int two = 0; int five = 0; // 2 * 5 = 10 이므로 // 1 ~ n까지 중 약수 2, 5의 개수를 찾은 뒤, // 둘 중 작은 값을 출력해.. 2024. 1. 13. [백준] 11687번 : 팩토리얼 0의 개수 (C++) 11687번 : 팩토리얼 0의 개수 문제) 가장 끝의 0의 개수가 M개인 N! 중에서 가장 작은 N을 찾는 프로그램을 작성하시오. 입력 : 첫째 줄에 M (1 ≤ M ≤ 100,000,000)이 주어진다. 출력 : 가장 끝의 0의 개수가 M개인 N! 중에서 가장 작은 N을 출력한다. 그러한 N이 없는 경우에는 -1을 출력한다. 풀이) 뒷 자리에 0이 만들어지는 이유는 2 * 5 가 존재하기 때문이다. 팩토리얼이 진행되면서 (1 * 2 * 3 * 4 .....) 2의 배수는 무조건 많기 때문에 5의 배수를 이진 탐색을 통해 세어주면 된다. 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 27 28 29 30 31 32 33 34 3.. 2023. 11. 8. 이전 1 다음