재귀함수 / 자기자신을 호출하는 함수
- Base case : 간단히 결과를 반환
- Recursive case : 자기 자신을 호출
int factorial(int i)
{
if(n == 0) return 1;
return n * factorial(n-1);
}
함수 실행을 위한 stack 메모리가 추가로 잡힘
void main(String[] args)
...
factorial(3)
---
factorial(3)
...
return 3 * factorial(2);
---
factorial(2)
...
return 2 * factorial(1);
---
factorial(1)
...
return 1 * factorial(0);
---
factorial(0)
...
return 1;
---
factorial(0) = 1
factorial(1) = 1*1 = 1
factorial(2) = 2*1 = 2
factorial(3) = 3*2 = 6
재귀 함수 사용 단점
// 메모리를 많이 차지하며, 성능이 반복문에 비해서 느리다
재귀 함수 사용 장점
// 가독성을 높일 수 있다,
// 변수의 사용을 줄여준다
오늘은 돈 잘 버는 동생님께서 맛난 고기를 사주셔숴.. 술을 마셨다.. 넘 헤롱거려서 오늘의 다이어리는 이까지만 쓰고 자야지.. 간단히 재귀함수에 대해 다시 생각하는 시간
그래도 앞에 하던 컬렉션, 객체 지향 프로그래밍보다 낫다..헷
어제 블로깅하고 자느라 오늘 늦잠을 자서 어제 다짐한 건 못했다.ㅜ
오늘은 바로 꿀잠잘 수 있을 것 같다..
'DIARY' 카테고리의 다른 글
[DIARY] 코드스테이츠 44일차 / 스프링 MVC 예외처리 (1) | 2023.06.15 |
---|---|
[DIARY 📖] 코드스테이츠 한 달 회고 / SECTION 2 끝 (0) | 2023.06.08 |
[DIARY 📖] 코드스테이츠 한 달 회고 (0) | 2023.05.10 |
[DIARY📖] 머리에 나사조으세요오오오! (0) | 2023.05.03 |
[DIARY]미쳐버리겠다.. 버거세트의 늪... 짜증나 (0) | 2023.04.29 |