package java0513;
import java.util.Arrays;
public class fibonacci {
public static void main(String[] args) {
long a, b, c;
long arrNum[] = new long[30];
a = 1;
b = 3;
arrNum[0] = a;
arrNum[1] = b;
int w = 0;
while(w<28) {
c = a+b;
arrNum[2+w] = c;
a = b;
b = c;
w++;
}
System.out.println(Arrays.toString(arrNum));
}
}
정말 정말 기본적인 피보나치수열 개념입니다. long형의 숫자 3개를 a,b,c로 만들어줍니다. 그리고 나서 이 숫자들을 담을 배열을 길이 30으로 하나 만들어주고요, 배열의 0번째에는 a가, 1번째에는 b가 들어가게 해줍니다. 우리가 피보나치 수열을 통해서 얻고자 하는 것은 처음 두 항을 더해서 새로운 값을 하나 만들어 낸 다음에 그 다음부터는 인접하는 숫자끼리 계속해서 더해가게끔 하는 것이죠. 예를 들어 1 2 이런식으로 숫자가 있다면 피보나치수열을 통해서는 1, 2, 3, 5, 8,,,, 쭉 나아가게 되는 것이죠. 코딩으로도 피보나치수열을 만들어낼 수 있습니다.
a와 b는 이미 지정해준 상태이고 c는 a+b의 값으로 합니다. 그 후 arrNum[2+w] = c; 로 해주는데 여기서 2를 더해주는 이유는 이미 arrNum[0]과 arrNum[1]이 1과 2의 값으로 차있기 때문입니다.
a b c
1 + 2 => 3
a b c
2 + 3 => 5
a b c
3 + 5 => 8
a와 b를 더해서 c값이 나왔습니다. 그러면 이제 기존의 a값은 b가 되고, b는 c가 되어 계속해서 연산이 이어져나가게 됩니다. 총 30개를 만들것이므로 while(w<28), 즉 28번 연산하라는 조건도 더해줍니다. 각 연산이 끝날 때마다 w가 하나씩 증가하므로 배열이 30개로 찰때까지 연산을 쭉 반복해서 원하는 결과값을 얻어낼 수 있겠습니다.
'Java > 기초 Java' 카테고리의 다른 글
[기초 자바] Generic이 대체 뭔가요? (1) | 2021.05.20 |
---|---|
[기초 자바] 상속의 기초 개념(1) (0) | 2021.05.18 |
[기초 자바] String class (0) | 2021.05.11 |
[기초 자바]wrapper class (0) | 2021.05.11 |
[기초 자바] 중복되지 않는 랜덤숫자 쉽게 만들기 (1) | 2021.05.10 |