profile image

L o a d i n g . . .

https://www.acmicpc.net/problem/27433


 

N = int(input())

if N == 0:
    print(1)
else:
    result = 1
    for index in range(2, N+1):
        result *= index
    print(result)

N = int(input())

if N == 0:
    print(1)

사용자로부터 숫자를 입력 받아 N에 정수형으로 대입합니다.

만약 사용자가 입력한 값이 0이라면 1을 출력하고 끝납니다.

 

팩토리얼(차례곱)은 그 수보다 작거나 같은 모든 양의 정수의 곱입니다.
예를 들자면 5!는 5 * 4 * 3 * 2 * 1 이 되고, 5 * 4! 라고 표현할 수 있습니다.
다만 1! 은 1이 됩니다. 위에서 말했듯, 팩토리얼은 그 수보다 작거나 같은 모든 양의 정수의 곱이기 때문입니다.
1보다 작은 양의 정수는 없기 때문에 1! = 1이 됩니다. 이 식을 1! = 1 * 0! 으로 바꿔서 사용 가능합니다.
1! = 1이고, 양변의 합은 같아야 하므로 1 * 0! = 1 이 되므로 0! 가 1인 이유가 됩니다.

 

else:
    result = 1
    for index in range(2, N+1):
        result *= index
    print(result)

사용자가 0이 아닌 다른 값을 이용했다면, 나중에 팩토리얼 값을 계산할 때 사용할 result 변수에 1을 대입합니다.

2부터 N+1 까지 반복문을 돌립니다. 

for index in range(2, 6)

예를 들어, 위 코드처럼 N이 5라면 index는 2, 3, 4, 5 값을 가지게 됩니다.

`result *= index` 부분은 `result = result * index`와 같습니다. result에 현재 index 값을 곱한 후 result에 대입합니다.

반복문이 끝난 후 result에 들어있는 값을 출력합니다.

'백준 > Python' 카테고리의 다른 글

[백준][Python]15680 - 연세대학교  (0) 2024.07.11
[백준][Python] 4999 - 아!  (0) 2024.07.10
[백준][Python] 1336 - 두 수 비교하기  (0) 2024.07.02
[백준][Python] 3046 - R2  (0) 2024.06.27
[백준][Python] 10039 - 평균 점수  (0) 2024.06.26
복사했습니다!