[Problem Solving/Java] 백준 10870번 - 피보나치 수 5

2024. 1. 5. 15:57·알고리즘 문제 풀이 (Problem Solving)

https://www.acmicpc.net/problem/1316

 

1316번: 그룹 단어 체커

그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때

www.acmicpc.net

문제

피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다.

이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 된다.

n=17일때 까지 피보나치 수를 써보면 다음과 같다.

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597

n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 n이 주어진다. n은 20보다 작거나 같은 자연수 또는 0이다.

출력

첫째 줄에 n번째 피보나치 수를 출력한다.

첫 번째 시도

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static int func(int num) {
        if (num == 0) {
            return 0;
        } else if (num == 1) {
            return 1;
        } else
            return func(num - 1) + func(num - 2);
    }

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int a = Integer.parseInt(br.readLine());
        System.out.println(func(a));
    }
}

해결 방법

피보나치 수열 중 0과 1일 경우는 if문으로 예외처리 후 함수를 호출 할 때 num-1과 num-2을 인자로 주고, 두 함수의 리턴 값을 더했다. 

반응형

'알고리즘 문제 풀이 (Problem Solving)' 카테고리의 다른 글

[Problem Solving/Java] 백준 2798번 - 블랙잭  (0) 2024.01.08
[Problem Solving/Java] 백준 2447번 - 별 찍기 - 10  (0) 2024.01.08
[Problem Solving/Java] 백준 10872번 - 팩토리얼  (1) 2024.01.05
[Problem Solving/Java] 백준 10757번 - 큰 수 A+B  (0) 2024.01.05
[Problem Solving/Java] 백준 2839번 - 설탕 배달  (2) 2024.01.05
'알고리즘 문제 풀이 (Problem Solving)' 카테고리의 다른 글
  • [Problem Solving/Java] 백준 2798번 - 블랙잭
  • [Problem Solving/Java] 백준 2447번 - 별 찍기 - 10
  • [Problem Solving/Java] 백준 10872번 - 팩토리얼
  • [Problem Solving/Java] 백준 10757번 - 큰 수 A+B
LoopThinker
LoopThinker
모르는 것을 알아가고, 아는 것을 더 깊게 파고드는 공간
  • LoopThinker
    CodeMemoir
    LoopThinker
  • 전체
    오늘
    어제
    • 분류 전체보기 (187) N
      • 개발 (Development) (123) N
        • Algorithm (1)
        • Angular (1)
        • AWS (4)
        • DeepSeek (2)
        • Docker (6)
        • Git (3)
        • Java (21) N
        • JavaScript (4)
        • Kafka (4)
        • Kubernetes (4) N
        • Linux (6)
        • PostgreSQL (33)
        • Python (17)
        • React (3)
        • TypeScript (3)
        • Vue.js (5)
        • General (6)
      • 데이터 분석 (Data Analysis) (1)
      • 알고리즘 문제 풀이 (Problem Solving.. (27)
      • 자격증 (Certifications) (24)
        • ADsP (14)
        • 정보처리기사 (4)
        • Linux Master (5)
        • SQLD (1)
      • 기술 동향 (Tech Trends) (10)
      • 기타 (Others) (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    리눅스 마스터 2급 2차
    백준온라인저지
    docker
    deepseek
    pandas
    springboot
    Kubernetes
    데이터분석
    javascript
    JSON
    백준
    Linux
    오답노트
    Vue
    Vue.js
    백준알고리즘
    DevOps
    리눅스 마스터
    python
    Kafka
    PostgreSQL
    Linux master
    MyBatis
    java
    리눅스 마스터 2급
    백준자바
    자바
    ADsP
    AWS
    typescript
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
LoopThinker
[Problem Solving/Java] 백준 10870번 - 피보나치 수 5
상단으로

티스토리툴바