#include <studio.h>
void Recursion(int num) {
//탈출 조건
if(num <= 0)
return;
//탈출 조건을 만들기 위한 인자(Argument)와 재귀 호출
Recursion(num-1);
printf("%2d번째 재귀 호출!\n", num);
}
void main() {
Recursion(3);
}
public static int sum(int n) {
if(n <= 0)
return n;
return n + sum(n - 1);
}
private static int factorial(int n) {
if(n == 0) //0! = 1
return 1;
else
return n * factorial(n-1);
}
public static int fibonacci(int n) {
if(n < 1)
throw new StackOverflowError("1보다 커야 합니다.");
if(n == 1) {
return 0;
}
else if (n == 2) {
return 1;
}
else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
public static void hanoiTower(int n, String from, String to, String temp) {
if(n == 1) {
System.out.println(String.format("원반 %d개 %s → %s", n, from, temp));
}
else {
hanoiTower(n - 1, from, temp, to);
System.out.println(String.format("원반 %d개 %s → %s", n, from, temp));
hanoiTower(n - 1, temp, from, to);
}
}