수학/팩토리얼 진법

Q·2021년 8월 1일
0

알고리즘/백준

목록 보기
4/70

문제 설명



전체 코드

import sys

input = sys.stdin.readline

def factorial(n):   
    answer = 1
    for i in range(1, n+1):
        answer = answer * i

    return answer

while True:
    num = int(input())

    if num == 0:
        break

    length = len(str(num))

    result = 0
    for i in range(length):
        result += int(str(num)[i]) * factorial(length-i) 

    print(result)

해결 방법

말 그대로 풀면 되는 문제이다. 어떤수의 factorial을 계산하는 함수를 선언하고 answer 변수에 값을 리턴 시킨다. 그 후 입력받은 num 변수에 string으로 명시적 형변환을 시킨후 num의 길이만큼 for문을 돌리면서 문제에 나온대로 7×3! + 1×2! + 9×1! 을 int(str(num)[i]) * factorial(length-i) 이런 식으로 계산하여 result에 값을 더해주고 결과를 print한다.

profile
Data Engineer

0개의 댓글