https://www.acmicpc.net/problem/10870
C
#include <stdio.h>
int fibo(int n);
int main() {
int n;
scanf("%d", &n); //반복할 횟수
printf("%d", fibo(n+1)); //fibo함수 출력하기
return 0;
}
//피보나치 수열 재귀함수
int fibo(int n) {
if (n <= 1) return 0;
else if (n == 2) return 1;
else
return fibo(n - 1) + fibo(n - 2);
}
java
package javastd1;
import java.util.Scanner;
public class bj10870 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.println(fibo(n+1));
}
static int fibo(int n) {
if(n<=1) return 0;
else if(n==2) return 1;
else
return fibo(n-1) + fibo(n-2);
}
}
피보나치 수열은 알고리즘에서 아주 기초 초보 문제!! 학부 때 가장 처음으로 했던 기억이 난다.
c, java 모두 재귀함수를 사용해 같은 방법으로 해결했다.
'공부하자 > 알고리즘' 카테고리의 다른 글
[백준] 10872번 팩토리얼 C, java (0) | 2022.01.20 |
---|---|
[백준] 2869번 달팽이는 올라가고 싶다 C, java (0) | 2022.01.19 |
[백준] 1316번 그룹 단어 체커 C (0) | 2022.01.15 |
[백준] 2447번 별 찍기-10 C, java (0) | 2022.01.13 |
[백준] 5622번 다이얼 C, java (0) | 2022.01.13 |