본 포스팅은 C++로 시작하는 객체지향 프로그래밍 책을 바탕으로 작성하였습니다.
C++로 시작하는 객체지향 프로그래밍
『C++로 시작하는 객체지향 프로그래밍』은 구문보다는 문제 해결에 중점을 두는 문제 구동 방식을 사용한 프로그래밍에 대해 가르치고 있다. 여러 가지 상황에서 문제를 야기한 개념을 사용함
book.naver.com
key point
- 재귀함수는 자기 자신을 호출하는 함수이다.
- 만일 재귀함수에서 기본 상태가 지정되지 않거나 최종적으로 기본 상태로 수렵하는 방식으로 재귀문제를 감소시킬 수 없는 경우에는 무한재귀가 발생할 수 있다. (함수가 무한적으로 실행되면 스택 오버플로를 발생시킨다.)
list 17.3 양수 n에 대해 2^n을 계산하기 위한 재귀적 수학 정의 작성
int abs(int n);
int main()
{
cout << "n 입력하시오: ";
int n;
cin >> n;
cout << abs(n) << endl;
return 0;
}
int abs(int n)
{
if (n == 0)
return 1;
else
return 2 * abs(n - 1);
}
list 17.4 양수 n과 실수 x에 대해 x^n을 계산하기 위한 재귀적 수학 정의 작성
#include <iostream>
using namespace std;
int abs(int x, int n);
int main()
{
int x;
int n;
cout << " x : ";
cin >> x;
cout << " n : ";
cin >> n;
cout << abs(x, n) << endl;
return 0;
}
int abs(int x, int n)
{
if (n == 0)
return 1;
else
return x * abs(x, n - 1);
}
17.3 예제: 피보나치 수
#include <iostream>
using namespace std;
int fib(int);
int main()
{
cout << "피보나치 급수의 인덱스를 입력하시오: ";
int index;
cin >> index;
cout << "피보나치 급수는 " << fib(index) << endl;
return 0;
}
int fib(int n)
{
if (n == 0)
return 0;
else if (n == 1)
return 1;
else
return fib(n - 1) + fib(n - 2);
}
'Language > C++' 카테고리의 다른 글
[C++_백준] 2914, 1550, 2845 (0) | 2022.02.02 |
---|---|
[C++_백준] for문 ( 2739, 10950, 8393, 15552, 2741, 2742, 11022, 2438, 2439, 10871 ) (0) | 2022.01.06 |
[C++_제 8장] 다차원 배열 (0) | 2021.12.09 |
[C++_제 7장] 1차원 배열과 C-문자열 (0) | 2021.12.06 |
[C++_제 6장] 함수 (0) | 2021.11.23 |