알고리즘/구름 edu
[구름LEVEL 유형 트레이닝 / 구현] 어려운 문제 (python)
난감
2024. 6. 14. 16:12
728x90
문제 설명
N!의 결과값을 한자리로 출력하는 문제이다.
N!의 결과값이 한자리가 아닌 경우 각 자리의 합을 더하는 과정을 반복하여 한자리 수로 출력한다.
풀이
N = int(input())
answer = 1
for i in range(2, N + 1):
answer *= i
while True:
str_answer = str(answer)
if len(str_answer) == 1:
print(answer)
break
answer = 0
for i in str_answer:
answer += int(i)
정석대로 N!의 값을 구한다.
for문을 2부터 N + 1까지 돌면서 곱하면 N! 값을 구할 수 있다. 1은 의미가 없으므로 넣지 않았다.
그리고 while문을 돌면서 answer 값이 한 자리인지 확인한다. 한 자리라면 정답을 출력 한 뒤 while문을 빠져나온다.
아니라면 각 자리를 더해 다시 answer 값을 갱신한다. 그리고 한 자리 수가 될때까지 위 과정을 반복한다.
숫자의 자리수가 한 자리인지 확인하는 방법은 str 함수를 사용했다.
len(str(answer)) == 1
int형인 answer 변수를 str로 변환하면, len 함수를 이용해 자리수를 구할 수 있다. 이때 이 값이 1이면 한자리 수 임을 알 수 있다.
반응형