#include <stdio.h>
/*
재귀 함수 // 함수가 함수를 호출하여 반복되는 함수
- 점화식
4! 4 3 2 1
*/
void Recursive(int num)
{
if (num == 0) // 0이 되면 리턴을 하여 재귀 함수 종료
return;
printf("Hello to myself\n");
Recursive(num - 1); // num에 -1을 한후 다시 불러오기
}
int Factorial(int n) // 피보나치 수열 만들기
{
/*
n * (n - 1) * (n - 2) * (n - 3) * ..... * (n - (n - 2)) * 2 * 1
=> n * (n - 1)!
*/
if (n == 0)
return 1;
return n * Factorial(n - 1);
// n * n - 1 * n - 2 * 1
}
/*
0 1 1 2 3 5 8 13
0 + 1 = 1
1 + 1 = 2
1 + 2 = 3
n = (n - 1) + (n - 2)
(n - 1) = (n - 2) + (n - 3)
*/
int Fibonacci(int n)
{
int f1 = 0, f2 = 1, f3;
if (n == 1)
printf("%d", f1);
else
printf("%d %d ", f1, f2);
for (int i = 2; i < n; i++)
{
f3 = f1 + f2;
printf("%d ", f3);
f1 = f2;
f2 = f3;
}
}
int fibonaccirecu(int n)
{
if (n == 0)
return 0;
else if (n == 1)
return 1;
return fibonaccirecu(n - 1) + fibonaccirecu(n - 2);
}
int main()
{
Recursive(3);
int n;
scanf_s("%d", &n);
printf("%d", Factorial(n));
int n2;
scanf_s("%d", &n2);
//Fibonacci(n);
for (int i = 0; i < n2; i++)
{
printf("%d ", fibonaccirecu(i));
}
return 0;
}
'Basic C Language' 카테고리의 다른 글
#15. Array_sort(배열 정렬) (0) | 2023.04.19 |
---|---|
#14. Array(배열) (0) | 2023.04.19 |
#12. Function(함수) (0) | 2023.04.19 |
#11. UpDown 게임 만들기 (0) | 2023.04.12 |
#10. for(반복문) (0) | 2023.04.12 |