

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일경우 직접 값을 넣어줘야 했다
'알고리즘(BOJ) > Silver' 카테고리의 다른 글
1388-바닥장식(BFS) (0) | 2022.12.21 |
---|---|
2606-바이러스(BFS) (0) | 2022.12.19 |
1697 - 숨바꼭질 (BFS) (0) | 2022.12.12 |
백준 - 10994 별 찍기 19 (0) | 2022.12.07 |
재귀 기초 (0) | 2022.11.28 |