-
[파이썬 기초] 알고리즘의 개념 / 코딩 연습 - 예제6(재귀함수 연습 - 정수n의 각 자릿수의 합)프로그래밍 2021. 3. 23. 22:57반응형
# 재귀 함수(recursive function) : 자기 자신을 호출하는 함수
(improvemyself.tistory.com/82?category=849184)
코드잇 예제풀이(재귀함수 문제) : 파라미터로 1 이상의 자연수 n을 받고, n의 각 자릿수의 합을 리턴하는 재귀 함수 sum_digits를 작성(조건 : 반복문 사용하지 말것)
Hint 1 : 재귀함수의 recursive case와 base case를 구분 : 여기서 base case는 인풋 n의 값이 한자리수(n < 10)일때임 → n을 리턴
Hint 2 : recursive case는 나머지 경우인데,
예를들어 인풋 n = 12345라고 가정하면
sum_digits(12345) = 5 + sum_digits(1234) = 5+4 + sum_digits(123) = 5+4+3 + sum_digits(12) = 5+4+3+2+sum_digits(1) = 5+4+3+2+1
여기서 5는 12345를 10으로 나눈 나머지, 4는 1234를 10으로 나눈 나머지 ,,, 이고
1234는 12345를 10으로 나눈 몫이므로 두 가지를 활용하여 함수를 정의
===========================================================
# n의 각 자릿수의 합을 리턴
def sum_digits(n) :
# base case
if n < 10:
return n
# recursive case
return n % 10 + sum_digits(n //10)
# 테스트
print(sum_digits(22541))
print(sum_digits(92130))
print(sum_digits(12634))
print(sum_digits(704))
print(sum_digits(3755))
14
15
16
11
20
반응형'프로그래밍' 카테고리의 다른 글
[파이썬 기초] 알고리즘의 개념 / 코딩 연습 - 예제8(재귀함수 연습 - 이진 탐색 알고리즘) (0) 2021.03.25 [파이썬 기초] 알고리즘의 개념 / 코딩 연습 - 예제7(재귀함수 연습 - 리스트 뒤집기) (0) 2021.03.24 [파이썬 기초] 알고리즘의 개념 / 코딩 연습 - 예제5(재귀함수 연습 - 삼각수) (0) 2021.03.23 [파이썬 기초] 알고리즘의 개념 / 코딩 연습 - 예제4(재귀함수 연습 - 피보나치 수열) (0) 2021.03.23 [파이썬 기초] 알고리즘의 개념 / 코딩 연습 - 재귀함수의 개념(카운트다운 함수, 팩토리얼 함수) (0) 2021.03.17 댓글