7.12 재귀적 함수 호출
void countDown(int count){
cout << count << "\n";
if (count > 0)
countDown(count -1 );
}
int main(){
countDown(5);
return 0;
}
재귀함수를 호출할 때는 종료 조건이 확실히 있어야 한다. (stack overflow)
int sumTo(int sumto){
if (sumto <= 0)
return 0;
else if (sumto <= 1)
return 1;
else
return sumTo(sumto - 1) + sumto;
}
int main(){
cout << sumTo(10) << "\n"; // 55
}
#include <iostream>
using namespace std;
int fibonacci(int n){
if (n==0) return 0;
else if (n==1) return 1;
else if (n==2) return 2;
else{
return fibonacci(n-1) + fibonacci(n-2);
}
}
int main(){
// 0 1 2 3 5 8 13 21 34 55 89
cout << fibonacci(10) << "\n";
return 0;
}
피보나치 수열
recursion은 depth가 한계가 있기 때문에 iteration으로 바꾸는 것을 추천.