* Factorial 을 구하는 재귀함수
#include <stdio.h>
int factorial(int n) {
if (n == 1) {
return 1;
}
else {
return n * factorial(n - 1);
}
}
int main()
{
printf("5 factorial = %d\n", factorial(5));
return 0;
}
* Fibonacci 수열의 값을 구하는 재귀함수
int fibonacci(int n) {
if (n == 1 || n == 2) {
return 1;
}
else {
return fibonacci(n-1) + fibonacci(n - 2);
}
}
int main()
{
printf("fibonacci [6] = %d\n", fibonacci(6));
return 0;
}
* Hanoi Tower 알고리즘
#include <stdio.h>
void move(int from, int to) {
printf("Move from %d to %d\n", from, to);
}
void hanoi(int n, int from, int by, int to) {
if (n == 1) {
move(from, to);
}
else {
hanoi(n - 1, from, to, by);
move(from, to);
hanoi(n - 1, by, from, to);
}
}
int main()
{
hanoi(3, 1, 2, 3);
return 0;
}
'SW > 알고리즘' 카테고리의 다른 글
Insertion Sort 1 (0) | 2019.05.11 |
---|---|
Selection Sort (0) | 2019.05.11 |
Tree Traversal4 - Level order Traversal (Breadth-First Traversal) (0) | 2019.02.23 |
Tree Traversal3 - Postorder traversal (0) | 2019.02.23 |
Tree Traversal2 - Inorder traversal (0) | 2019.02.23 |