백준 피보나치 5 : 브론즈 2
https://www.acmicpc.net/problem/10870
10870번: 피보나치 수 5
피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가
www.acmicpc.net
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int result = 0;
if(n>=2){
int n1 = 0;
int n2 = 1;
for(int i=2;i<=n; i++ ){
if(i%2==0){ // 짝
n1 = n1+ n2;
}else{ //홀
n2 = n1 +n2;
}
}
result = (n1>n2)?n1:n2;
}else{
result = n;
}
System.out.println(result);
}
}
피보나치 N이 0~20까지라서 재귀가 아닌 for문으로 해결함.
n1, n2 포인터 두개 써서 짝수홀수일때 나눠가며 계산하는걸로 짰는데..
문제는 for문이 헷갈린다..;; 충격.. for문의 조건순서가 헷갈리는건지.;;
0 번째부터 시작 N번째까지.. 가 갑자기 생소.. 계속 문제를 풀면서 익혀나가야겠다.
'알고리즘' 카테고리의 다른 글
D+7 백준 2609 최대공약수와 최소공배수 (0) | 2021.10.12 |
---|---|
D+6 백준 - 2309 일곱난쟁이 (0) | 2021.10.12 |
D+5 (0) | 2021.10.07 |
D+4 (0) | 2021.08.31 |
D+2, 3 (0) | 2021.08.26 |