1676번 - 팩토리얼 0의 개수
어디서 틀린 지 모르겠습니다,, 반례 좀 찾아주세요 고수님들
500!은 정수형으로 저장할 수 없습니다.
500! 같이 아주 큰 수를 연산하려면 python을 사용하거나 아니면 다른 방식으로 풀어야 합니다.
예를 들어 10의 소인수는 2, 5이므로 N!이 2, 5로 각각 몇 번이나 나눠질 수 있는지를 N!을 구하지 않고 알 수 있습니다.
네 500!을 int에 저장을 못해서 현재 값에서 eliminate함수를 사용해서 fac배열에 저장하는 방식입니다.
맨 뒤에서부터 0이 몇 개인지 zeroAMount에 저장하고 처음으로 0이 아닌 수가 나오면 그 값만 fac배열에 저장하는 방식인데요
이런 식이면 500!전체를 저장 안 하게 되는 거 아닌가요.
500 넣으면 값도 잘 나오고 하는데 어디서 틀렸다고 나오는지 모르겠습니다
아 제가 틀렸네요 str로 저장하면서 19줄이 fac[]을 변경하고 있고 10으로 나눈 일의 자리만 저장하면 거의 답과 비슷하게 나오네요
일의 자리만 남기면 남은 2를 거의 처리를 못하고 n = 25 같이 5가 2보다 더 많은 경우를 잘 못 세서 틀리는 것 같습니다. 답은 6인데 5가 나오네요.
댓글을 작성하려면 로그인해야 합니다.
jh11240 2년 전
어디서 틀린 지 모르겠습니다,, 반례 좀 찾아주세요 고수님들