## 과제_1 : 피보나치 수 (재귀)
목표 : 재귀 함수로 피보나치 수열을 구현하라
요구사항
- 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수다
- `int solution(int n)` 함수를 완성해서 피보나치 n번째 수를 반환하도록 한다
- 재귀로 구현한다
## 과제_2 : 피보나치 수 (반복문)
목표 : 반복문을 사용해서 피보나치 수열을 구현하라
요구사항 : 과제_1에서 작성한 코드를 반복문을 사용해서 구현한다
> https://school.programmers.co.kr/learn/courses/30/lessons/12945
## 과제_3 : 콜라 문제 (재귀)
목표 : 재귀 함수로 콜라 문제를 풀어라
요구사항 : 프로그래머스에서 다음 문제를 풀어라. [https://school.programmers.co.kr/learn/courses/30/lessons/132267](https://school.programmers.co.kr/learn/courses/30/lessons/132267)
## 과제_4 : 콜라 문제 (반복문)
목표 : 반복문을 사용해서 콜라 문제를 풀어라
요구사항 : 과제_3에서 작성한 코드를 반복문을 사용해서 구현한다. [https://school.programmers.co.kr/learn/courses/30/lessons/132267](https://school.programmers.co.kr/learn/courses/30/lessons/132267)
---
## 과제_1 : 피보나치 수 (재귀) 모범답안
```java
class Solution {
public int solution(int n) {
if (n <= 2)
return 1;
return (solution(n-1) + solution(n-2)) % 1234567;
}
}
```
## 과제_2 : 피보나치 수 (반복문) 모범답안
```java
class Solution {
public int solution(int n) {
if (n <= 2)
return 1;
int answer = 0;
int a = 1;
int b = 1;
for (int i = 3; i <= n; i++) {
answer = (a + b) % 1234567;
a = b;
b = answer;
}
return answer;
}
}
```
## 과제_3 : 콜라 문제 (재귀) 모범답안
```java
class Solution {
public int solution(int a, int b, int n) {
if (n < a) {
return 0;
}
return (n / a) * b + solution(a, b, (n / a * b) + (n % a));
}
}
```
## 과제_4 : 콜라 문제 (반복문) 모범답안
```java
class Solution {
public int solution(int a, int b, int n) {
int answer = 0;
while (true) {
if (n < a) {
break;
}
answer += (n / a) * b;
n = ((n / a * b) + (n % a));
}
return answer;
}
}
```