1564번 - 팩토리얼5
로직상 틀린건 없는거 같은데요
실제 예시를 집어넣었을때도 잘 작동합니다
로직을 말씀드리자면
1부터 b까지의 모든 숫자를 계속 곱해가는데,
만약 5자리 이상의 숫자이고, 10으로 나눠진다면 10으로 나누고
그냥 5자리 이상의 숫자라면 뒤 5자리만 남기고 다 날립니다
마지막에 출력 양식도 맞췄습니다
혹시 뭐가 틀린지 알수 있을까요?
반례입니다.
입력 : 390625
정답 : 50016
출력 : 16000
390624! 의 마지막 뒷자리는 04096 으로, 58 = 390625 를 곱해주면 1,600,000,000이 나옵니다.
주어진 소스코드는 길이가 5 이하일때는 10으로 나누어 떨어지더라도 10으로 나누지 않게 되어 16000을 출력하게 됩니다.
윗분의 말씀대로 저러한 반례도 있지만 가장 낮은 수치의 반례는 이것이지 않나 싶네요.
- 입력 15 - 출력 24368 - 정답 74368 <- 1,307,6|74,368
댓글을 작성하려면 로그인해야 합니다.
k550706 1년 전
로직상 틀린건 없는거 같은데요
실제 예시를 집어넣었을때도 잘 작동합니다
로직을 말씀드리자면
1부터 b까지의 모든 숫자를 계속 곱해가는데,
만약 5자리 이상의 숫자이고, 10으로 나눠진다면 10으로 나누고
그냥 5자리 이상의 숫자라면 뒤 5자리만 남기고 다 날립니다
마지막에 출력 양식도 맞췄습니다
혹시 뭐가 틀린지 알수 있을까요?