본문 바로가기

알고리즘28

하노이 탑 하노이 탑에는 조건이 있다. 1. 한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다. 2. 쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다. n개의 원판이 있고 a에서 c까지 보낸다고 했을 떄 예를 보자 n이 1인 경우 이 경우는 바로 c까지 보내면 된다. cout 2022. 10. 1.
피보나치 3가지 방법 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 #include using namespace std; int f[10] = {}; // 전역변수 int fibo(int n) // 반복문을 이용한 피보나치 { int s = 0, f0=0, f1=1; if (n 2022. 9. 29.
재귀의 정적변수 일반재귀 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #include using namespace std; int fun(int n) { if (n > 0) { return fun(n - 1)+n; } return 0; } int main() { int x; x=fun(5); cout fun(2) +n-> fun(1)+n ->fun(0)+n 조건문에 걸려서 반대로 올라간다. n은 1부터 시작해서 올라간다. fun(0) = 0+1 = 1 fun(1) = 1 +2 = 3 fun(2) = 3 +3 = 6 fun(3) = 6 +4 = 10 fun(4) = 10 +5 = 15 fun(5) = 15 결과값은 15가 나온다. 정적변수를 이용 1 2 3 4 5 6 7 8 .. 2022. 9. 26.
재귀 함수 재귀 함수는 함수가 자기 함수를 호출하는것을 재귀 함수라고 한다. 이 재귀 함수에는 종료할 수 있는 기본 조건이 있어야 한다. 그러치 않으면 계속 자기 자신을 호출하면서 무한루프에 빠지게 된다. 예; 꼬리 재귀 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #include using namespace std; void fun(int n) { if (n > 0) { cout 2022. 9. 25.