재귀함수를 이용하여 팩토리얼을 구하는 프로그램을 만들겠습니다.
재귀함수란 메소드가 자신을 호출하는 것을 말합니다.
끝나는 점을 정해주지 않으면 무한히 자신을 호출하므로, 끝나는 지점을 반드시 구현해야 합니다.
팩토리얼이란 그 수보다 작거나 같은 모든 양의 정수의 곱이며, 숫자 뒤 ! 로 표기합니다.
예를 들면 5! 는 5*4*3*2*1 =120 입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | import java.util.*; public class TestObject { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("팩토리얼 수를 입력 : "); int facSu = in.nextInt(); int res = factorial(facSu); System.out.printf("%d의 팩토리얼 값은 %d 입니다.\n",facSu,res); } public static int factorial(int n) { if (n<=1) return n; else return factorial(n-1)*n; } } | cs |
키보드로 입력받기 위해 Scanner를 사용합니다.
입력된 수를 int facSu 변수에 받습니다.
팩토리얼 값을 받을 변수 int res 도 생성합니다.
public static int factorial(int n) {
if (n<=1)
return n;
else return factorial(n-1)*n;
재귀함수를 작성합니다.
만약 5의 팩토리얼을 구한다면 5! = 5*4! 이므로
5*factorial(4) =120이 됩니다.
계산법은 이렇게 됩니다.
n=5 : 5*factorial(4)
n=4 : 4*factorial(3)
n=3 : 3*factorial(2)
n=2 : 2*factorial(1)
n=1 : 1(if조건에 부합하므로 호출 끝)
factorial(1)=1
factorial(2)=2
factorial(3)=6
factorial(4)=24
factorial(5)=120
System.out.printf("%d의 팩토리얼 값은 %d 입니다.\n",facSu,res);
입력한 수와 팩토리얼 값을 출력합니다.
잘 출력되었습니다.
'Study > Java' 카테고리의 다른 글
자바 버튼과 패널을 이용하여 계산기 모양 만들기(BorderLayout, GridLayout) (0) | 2022.03.29 |
---|---|
자바 재귀함수를 이용하여 피보나치 수열 구하기 (0) | 2022.03.21 |
자바 배열 및 random, System.in.read 를 이용하여 야구 게임 만들기 (0) | 2022.03.18 |
자바 Math.random() 사용하여 로또 번호를 입력 받아 맞춘 개수 출력 (0) | 2022.03.17 |
자바 이름과 점수를 입력 받아 순위 출력 (0) | 2022.03.16 |