728x90
반응형
반복함수와 재귀함수
Java Programming Tutorial 2017 by 나동빈
링크 : https://youtu.be/2fsJ6Hlcfs4
반복함수를 이용해서 팩토리얼 구현
public class Main {
public static int factorial(int number) {
int sum = 1;
for(int i = 2; i <= number; i++)
{
sum *= i;
}
return sum;
}
public static void main(String[] args) {
System.out.println("10 팩토리얼은 " + factorial(10));
}
}
재귀함수를 사용해서 팩토리얼 구현
public class Main {
public static int factorial(int number) {
if(number == 1)
return 1;
else
return number * factorial(number - 1);
// 5! = 5 * 4!
}
public static void main(String[] args) {
System.out.println("10 팩토리얼은 " + factorial(10));
}
}
반복 함수로 피보나치 수열 구현
public class Main {
public static int fibonacci(int number) {
int one = 1;
int two = 2;
int result = -1; // 문제가 발생했을 때의 반환 값
if(number == 1)
{
return one;
}
else if(number == 2)
{
return two;
}
else
{
result = one + two;
one = two;
two = result;
}
return result;
}
public static void main(String[] args) {
System.out.println("피보나치 수열의 5번째 원소는 " + fibonacci(5) + "입니다.");
}
}
재귀함수로 피보나치 수열 구현
public class Main {
public static int fibonacci(int number) {
if(number == 1)
{
return 1;
}
else if(number ==2)
{
return 1;
}
else
{
return fibonacci(number - 1) + fibonacci(number - 2);
}
}
public static void main(String[] args) {
System.out.println("피보나치 수열의 5번째 원소는 " + fibonacci(50) + "입니다.");
}
}
- 반복함수와 달리 재귀함수를 사용할 경우 반복되는 계산을 여러번 요구할 수 있다
- 숫자가 커지면 커질수록 기하급수적으로 많아짐
- 이를 대체하기 위해 동적 프로그래밍을 사용할 수 있다
'Algorithm Study > Java' 카테고리의 다른 글
[코드업 자바] # 1012 [기초-입출력] 실수 1개 입력받아 그대로 출력하기 (0) | 2021.12.24 |
---|---|
[자바 기초 프로그래밍] 배열 (0) | 2021.12.23 |
[자바 기초 프로그래밍] 사용자 정의 함수 (0) | 2021.12.23 |
[자바 기초 프로그래밍] 기본 입출력 (0) | 2021.12.22 |
[코드업 자바] # 1008 [기초-출력] 출력하기08 (0) | 2021.12.19 |