자바 재귀함수 질문 !

자바 재귀함수 질문 !

작성일 2023.08.30댓글 1건
    게시물 수정 , 삭제는 로그인 필요

자바 재귀함수 질문입니다. 문제에서 4를 입력했을때
4<=1 이 되어서 value = ( n * func (n-1) ); 으로 넘어갔는데
여기서 사진에 보시다시피 저렇게 되는거 아닌가요 ? 정답은 1 2 6 24 로 나왔습니다. 1은 retun 1이여서 1이 출력되었구 2는 왜 2로 출력이 된거죠 ? 6 또한 왜 일까요 ? 24는 2 × 3 × 4 해서 24가 출력된 것이 아닌가요 ?






#자바 재귀함수 #자바 재귀함수 팩토리얼 #자바 재귀함수 탈출 #자바 재귀함수 문제 #자바 재귀함수 배열 #자바 재귀함수 피보나치 #자바 재귀함수 최대값 #자바 재귀함수 종료 #자바 재귀함수 return #자바 재귀함수 사용법

profile_image 익명 작성일 -

안녕하세요.

4를 입력했다고 가정하고,

result = func(4); 가 호출되게 됩니다.

func 메소드를 보면,

if(n <= 1) 이 아니므로,

value = (n*func(n-1); 이 호출됩니다.

즉, valule = 4 * func(3); 이 호출됩니다.

동일하게 value = 3 * func(2); 가 호출되고,

value = 2 * func(1); 이 호출됩니다.

func(1)을 보면 if(n<=1)에 걸리게 되므로,

System.out.println("1"); 이 호출되어 1이 출력되고, 1값을 반환합니다.

현재 1 출력되었고,

value = 2 * func(1); 이 문장에서 func(1)의 결과로 1이 반환되었으므로,

2*1 의 결과가 만들어지고, value = 2; 가 되고,

System.out.println(value); 문장이 수행되므로 2가 출력됩니다.

그리고 return value; 가 되므로 2가 반환됩니다.

그럼 현재 출력은

1

2

가 출력된 상태이지요.

value = 3 * func(2); 다음 여기에서 func(2) 의 결과가 2 반환되었으므로,

value = 3*2;

value = 6이 되므로, value를 출력하므로 6을 출력합니다.

1

2

6

이 출력된 상태이고,

valule = 4 * func(3); 에서 func(3)의 결과로 6이 반환되므로,

value = 4*6; 이므로 value=24 가 되고 24가 출력됩니다.

따라서 출력은

1

2

6

24

가 됩니다.

참고하세요.

자바 재귀함수 질문드립니다.

... 보통 재귀함수는 종료조건이 있고, 매개변수가 종료조건에 가까워집니다. 아래 예를 보면 return 10 * example( a / 10, b - 1);에서 보면 재귀함수를...

자바 재귀함수 질문입니다.

... 팩토리얼 함수인데요 제가 원하는 것은 재귀함수안에서 특정값을 리턴 받는것입니다. n == 4 일때 n 을 리턴시키는 것인데 빨간줄...

자바 재귀 함수 질문입니다.

... 어떻게 재귀 함수로 인식이 되는지 이해가 되지 않아 질문드립니다. 리턴이라는 함수의 개념을 잘못 알고 있는 것인지 아니면 재귀 함수 자체를 잘못 알고...

자바 재귀함수 질문입니다!

자바에서 값을 하나 입력받아 다 더하는 함수의 코드를 알수있을까요 예를 들어 제가 12를 입력하면 1부터 12까지 다 더하는...

자바 재귀함수 질문입니다.

12팩토리얼에 대한 답이 479001600 인 건 알고 있는데 [code]return n*factorial(n-1);[/code] 이 부분이 어째서 그 답으로 연산이 되는지 이해가...

자바 재귀함수 질문이요 ㅠ

n 값을 넣었을 때 출력되는 값이랑 그 과정 한번만 알려주세요...ㅠㅠ package test9; import janesoft.common.Scanner; public class Ex02...