알고리즘(BOJ)/Silver
백준-10870 (재귀)
ch.0
2022. 12. 6. 22:54
import java.util.Scanner;
//백준
public class Main {
static long fibonacci(int before, int sum, int input) {
long output=0;
if(input>2) {
before=sum-before;
sum=before+sum;
System.out.println("before: "+before + "sum: "+sum);
return output=before+fibonacci(before,sum,input-1);
}else if(input==2) {
return 1;
}else if(input==1) {
return 1;
}else if(input==0) {
return 0;
}
return output;
}
public static void main(String[] args) {
try (Scanner sc = new Scanner(System.in)) {
int input = sc.nextInt();
if(input<=20&&input>=0) {
System.out.println(fibonacci(0,1,input));
}
}
}
}
완벽하지는 않지만 일단 풀어내긴 했다.
0+1 =1
1+1 =2
1+2 =3
2+3 =5
3+5 =8
결과값과 이전값의 뒤에 값이 더해진다는 규칙성을 가지고 풀었다
그래서 이전값과 결과값을 넘겨줘서 계속 더 하는 재귀를 짰다
문제점이 2일경우 직접 값을 넣어줘야 했다