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으로 바꾸는 것을 추천.