● 피보나치 수열 100개를 출력하라
피보나치 수열 : 첫 번째 항의 값이 0이고 두 번째 항의 값이 1일 때,
이후의 항들은 이전의 두 항을 더한 값으로 이루어지는 수열을 말한다.
long a=1, b=1, c=0, i; //a와 b에서 나온 숫자를 더해서 C에다 담으려고
for (i=0;i<100;i++) { // 백개를 구한다고 했으니까 0 - 100까지 루프를 돌릴거야
if(i<2) { //만약에 i가 2보다 작으면
System.out.print("1\t"); //1이라고 프린트해줘
} else { // if 문 빠져 나오고 if 문이 아니라면 (false)
c=a+b; // C에 a+b를 해줘
System.out.print(c+ "\t"); //그리고선 c를 출력해줘
a=b; //값을 바꿔야 하니까 a = b 로 리셋
b=c; //b=c로 리셋할게
} // 그리고선 else 문을 빠져 나오렴
} //for 문도 빠져 나오고 반복
피보나치를 int (4B) 를 써서 100개 구하니 - (마이너스) 가 뜨더라. 알고보니 뭐 컴퓨터에서 읽을 수 없는 거랬나.
그래서 long (8B) 를 써서 흐트러짐이 없게 바꿔주었다.
첫번째 for 문은 100개를 구하라고 했으니 0 - 99 백개를 계산 하는 것이다.
피보나치 수열은 1 1 3 5 8 .... 와 같은 모양이라,
따라서 우선 시작은 1 1 이어야 하기 때문에 if 문으로 2보다 작을때는 1을 프린트 해라. 라고 설정 해 놓았다.
그게 아니라면 a + b 를 c에 할당하고 c 를 프린트 하는 것으로 설정.
프린트가 끝나면 다음 계산을 위해 a 값을 사라지고, b 가 a 로 이동 -> c 가 b 로 이동 한다.
'JAVA' 카테고리의 다른 글
[JAVA] 자바 기타 제어문 : break, continue, return (0) | 2023.02.19 |
---|---|
[JAVA] 자바 제어문 : 반복문 (while) (0) | 2023.02.19 |
[JAVA] 조건문 if 와 반복문 for 를 이용한 약수, 소수 구하기 (0) | 2023.02.19 |
[JAVA] 반복문 for 를 이용한 피라미드 별 찍기 2 (0) | 2023.02.19 |
[JAVA] 반복문 for을 이용한 피라미드 별 찍기 (0) | 2023.02.19 |