( 춤 안춥니다. )
이번 시리즈는...
하루에 한알!
1일 1 알고리즘 풀기 !
입니다.
(우와아아아앙아ㅏㅏㅏㅏ~!!!!)
재귀를 사용하여 팩토리얼(factorial)을 구하는 함수를 구현해주세요.
팩토리얼이란 1에서부터 n까지의 정수를 모두 곱한것을 말합니다.
1! = 1 2! = 1 * 2 5! = 1 * 2 * 3 * 4 * 5
def factorial(n):
- 인자로써 받은 숫자 ( int ) 를
- 다른 구문을 사용하지 않고,
- 함수 안에서 함수 실행을 반복하게 해야한다! ( 재귀식 )
라는 내용인 것 같네요.
def factorial(n):
# 주어진 함수의 이름은 " factorial " 매개변수는 " n "
# n 이라는 매개변수에는 정수형 데이터만 들어옴.
- ' for ' 나 ' if ' 등의 명령 구문을 사용하지 않고,
- 함수 안에서 ' 인자를 가공하여, 함수를 실행 ' 하여 재귀를 발생시키고,
- 함수의 종료시점을 지정하면 되겠네요!
# 생각이 난 명령!
if (n == 0):
# 0 이 들어오면 ( 3 ~ )
return 1
# 1 로 바꿔줘! (0 을 곱하면 무조건 0 이 되니까) ( ~ 3 )
return n * factorial(n-1)
# 함수 안에서 함수를 실행해줘! (factorial(n-1)->(n-1)*(n-2) 니까!) ( 2 )
# 제출한 답안!
def factorial(n):
if (n == 0):
return 1
return n * factorial(n-1)
( 위의 내용은 모범답안을 보고, 원리에 대한 분석을 한거에요... )
def factorial(n):
result = 1
for i in range(n):
result *= (i+1)
return result
프로젝트 때문에, 많이 바빠져서 글 올리는걸 까먹고 있었습니다... ㅠㅜ
더 꼼꼼해질 수 있는 방법을 찾아야겠어요!