[알고리즘] JAVA 재귀함수로 팩토리얼(JAVA Factorial)
- 맨땅에코딩/알고리즘
- 2020. 9. 8.
결과
public class Factorial {
public static int factorial(int num) {
if(num == 1) {
return num;
}
else if(num > 1) {
return factorial(num -1)*num;
}
return num;
}
public static void main(String[] args) {
int num;
Scanner sc = new Scanner(System.in);
while(true) {
System.out.println("숫자 입력 종료는 0: ");
num = sc.nextInt();
System.out.println(num+"!"+ factorial(num));
if(num==0) {
System.exit(0);
}
}
}
- 숫자입력 (3입력했다고 가정)
- factorial()메소드의 매개변수인 num에 3입력
- (else if부터) num은 1보다 클때 factorial(3 - 2) 매개변수인 num에 2입력하면서 호출
- 다시 factorial(2 - 1) 매개변수인 num에 1입력하면서 호출
- num = 1일경우 1(num) 리턴
- 이전에 호출했던 factorial(2) 로 돌아가서 연산 ( 2 * 1)한 값 리턴
- 다시 이전(맨처음)에 호출했던factorial(3)로 돌아가서 연산 ((2*1)*3)
- 4를 입력했을경우 ((2*1)*3)*4연산 ( 6 * 4 )
'맨땅에코딩 > 알고리즘' 카테고리의 다른 글
[알고리즘] JAVA 입력한 수만큼 사각형 ( ㄹ 자 ) 출력 ( 배열 사용 X ) (0) | 2021.03.29 |
---|---|
[알고리즘]JAVA 거듭제곱(Power) (0) | 2020.09.08 |
[알고리즘] JAVA 피보나치(Fibonacci) (0) | 2020.09.08 |
[알고리즘]JAVA 입력 한 숫자에 따른 정방행렬 출력 (0) | 2020.09.08 |
[JAVA] 알고리즘 버블정렬 (bubble sort) (0) | 2020.09.07 |