반복함수와 재귀함수에 대해서 알아보려고합니다.
반복함수란 단순히 for문, while문 등을 이용하여 특정한 처리를 반복하여 결과값을 얻어네는 함수입니다.
public class main{ // *factorial이란? // 첫 숫자에서 1씩 차감한 수를 곱하는 수 //5! = 5 * 4 * 3 * 2 * 1 = 120 // 6! = 720 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)); // 10 팩토리얼은 3628800 } }
자신의 함수 내부에서 자기 자신을 스스로 호출하여 재귀적으로 문제를 해결하는 함수입니다.
public class main{ //5! = 5 * 4 * 3 * 2 * 1 = 120 // 5! = 5 * 4! public static int factorial(int number){ if(number ==1) return 1; else return number * factorial(number -1); } public static void main(String[] args){ System.out.println("10팩토리얼은 " + factorial(10)); // 10 팩토리얼은 3628800 } }
이 두가지 함수는 간결하고 직관적인 코드로 문제를 해결할수 있도록 해주지만 상황에 따라서 비효율적인 문제가 생기기에 알맞는 함수를 사용하여야 합니다.