-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
궁금한점있습니다.
23.04.05 22:59 작성 23.04.05 23:00 수정 조회수 269
0
안녕하세요. 강사님
재귀함수로 구현을 할 때 아래 코드에서 어떤 코드를 추가해야지 원소를 나열 할 수 있을까요?
public class Main{
public int solution(int n){
if(n < 3){
return 1;
}
return solution(n - 2) + solution(n - 1);
}
public static void main(String[] args) {
MainT = new Main();
int n = 10;
System.out.println(T.solution(n));
}
}
답변을 작성해보세요.
0
방수영
2024.01.21
혹시 재귀함수로 해당 문제 푸시다면, 요런 방식은 어떠실가요?
import java.util.Arrays;
import java.util.Objects;
import java.util.Scanner;
import java.util.stream.Collectors;
public class Main {
public static int[] solution(int size, int[] intArr) {
// 앞의 수를 합하여 다음숫자가됨
// ex) 1 1 2 3 5 8 13
if(size < 0) return intArr;
intArr = solution(size - 1, intArr);
if(size == 0 || size == 1){
intArr[size] = 1;
} else {
intArr[size] = intArr[size-1] + intArr[size-2];
}
return intArr;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int size = in.nextInt();
int[] intArr = Objects.requireNonNull(solution(size - 1, new int[size]));
String result = Arrays.stream(intArr)
.mapToObj(String::valueOf)
.collect(Collectors.joining(" "));
System.out.println(result);
}
0
김태원
지식공유자2023.04.06
안녕하세요^^
위에 재귀함수는 피보나치 수열의 n번째 원소를 반환해주는 재귀함수입니다. 이 재귀에 뭘 추가해서 피보나치 수열의 모든 원소를 나열할 수 없습니다. main 함수에서 재귀를 여러번 호출하는 수 밖에 없어 보입니다.
답변 2