728x90
#include <stdio.h>
#include <stdlib.h>
int temp = 0;

int recursive_fibonacci(int n,int temp) {
	if (n == 1) {
		return 1;
	}
	else if (n == 0) {
		return 0;
	}
	else
		temp = recursive_fibonacci(n - 1,temp) + recursive_fibonacci(n - 2,temp);
}
int loop_fibonacci(int n) {
	int* arr;
	arr = (int*)malloc(sizeof(int) * (n+1));
	memset(arr, 0, sizeof(int) * (n+1));
	
	if (n > 1) // 만약 n이 1 이하일 경우, 메모리 침범
		arr[0] = 0, arr[1] = 1;  //index주의! 첫번째 피보나치, 두번째 피보나치 값은 각각 1. 
	else if (n == 0)
		return 0;
	else if (n == 1)
		return 1;

	for (int i = 2; i <= n; i++) {
		arr[i] = arr[i - 1] + arr[i - 2];
	}
	return arr[n];
}
int main() {
	int input;
	printf("input : ");
	scanf_s("%d", &input);
    if(input < 0)
    	return -1;

	printf("recursive_fibonacci(%d) = %d\n", input, recursive_fibonacci(input, temp));
	printf("loop_fibonacci(%d) = %d\n",input, loop_fibonacci(input));
}
728x90

'자료구조론' 카테고리의 다른 글

ackermann  (0) 2023.04.03
factorial  (0) 2023.03.30
check_perfectNumber  (0) 2023.03.30
binomial_coefficient  (0) 2023.03.30
비둘기 집  (0) 2023.03.30

+ Recent posts