![article thumbnail image](https://blog.kakaocdn.net/dn/tBpGr/btsIrP1LBT3/T405Gc9yBMWncxckRP4lq1/img.png)
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 |