jh11240   2년 전


어디서 틀린 지 모르겠습니다,, 반례 좀 찾아주세요 고수님들 

g072923   2년 전

500!은 정수형으로 저장할 수 없습니다.

slah007   2년 전

500! 같이 아주 큰 수를 연산하려면 python을 사용하거나 아니면 다른 방식으로 풀어야 합니다.

예를 들어 10의 소인수는 2, 5이므로 N!이 2, 5로 각각 몇 번이나 나눠질 수 있는지를 N!을 구하지 않고 알 수 있습니다.

jh11240   2년 전

네 500!을 int에 저장을 못해서 현재 값에서 eliminate함수를 사용해서 fac배열에 저장하는 방식입니다.

맨 뒤에서부터 0이 몇 개인지 zeroAMount에 저장하고 처음으로 0이 아닌 수가 나오면 그 값만 fac배열에 저장하는 방식인데요 

이런 식이면 500!전체를 저장 안 하게 되는 거 아닌가요.

500 넣으면 값도 잘 나오고 하는데 어디서 틀렸다고 나오는지 모르겠습니다

slah007   2년 전

아 제가 틀렸네요 str로 저장하면서 19줄이 fac[]을 변경하고 있고 10으로 나눈 일의 자리만 저장하면 거의 답과 비슷하게 나오네요

일의 자리만 남기면 남은 2를 거의 처리를 못하고 n = 25 같이 5가 2보다 더 많은 경우를 잘 못 세서 틀리는 것 같습니다. 답은 6인데 5가 나오네요.

댓글을 작성하려면 로그인해야 합니다.