입력되는 값의 팩토리얼을 구하고 마지막 숫자가 0
이면 10씩 나누어가며 count 출력하면 되는문제
자주 틀린 이유는 overFlowError
500!같은 경우 너무 숫자가 큰데 이를 /
를통해 나누면 float이 나온다. 그렇게 되면 오버플로우 발생.
python3는 integer에 overflow가 없다.
그래서 /
가 아닌 //
를 통해서 integer를 리턴해서 문제해결함
n = int(input())
result = 1
while n > 0:
result *= n
n -= 1
count = 0
while result != 0:
if result % 10 == 0:
count += 1
result //= 10
else: break
print(count)
# /의 결과는 무조건 float
# float overflow발생 (500!같은 경우 너무큼)
# python3에서는 integer가 overflow가 없음 그래서 //를 통해서 정수를 구함 (/를 통해서 float을 구하는것대신)
# 참고로 //는 정수를 리턴함.
# //를 통해서 overflow문제해결