알고리즘
피보나치 수열 - 자바스크립트 for loop 사용, 재귀함수x
또롱또
2022. 5. 13. 15:24
728x90
첫번째수와, 두번째수를 더해서 세번째수를 만드는 것이 피보나치 수열이다.
// 아래와 같이 첫번째 숫자와 두번째 숫자를 합친게 세번째 숫자에 들어간다.
[1, 2, 3, 5, 8, 13]
설명과 코드는 아래와 같다.
function fibonacci(range){
//시작 변수 준비
let firstNum = 0;
let secondNum = 1;
let thirdNum = 1;
// 마지막 숫자를 담을 변수
let last = 0;
// 받은 범위가 0이면 종료
if(range === 0){
return last;
// range가 양수인경우
}else if(range > 0){
// i=2 인 이유: 초기에 1,2,3번에 들어갈 수자를 세팅했기 때문에
// 3가지 숫자를 세팅했고, 인덱스로 따지면, 0,1,2번 인덱스까지 사용했기 때문이다.
for (let i = 2; i < range; ++i) {
// 첫번째 숫자에는 이제 두번째 숫자가 위치한다
firstNum = secondNum;
// 두번째 숫자에는 이제 세번째 숫자가 위치한다
secondNum = thirdNum;
// 세번째 숫자에는 첫번째 숫자 + 두번째 숫자가 온다
thirdNum = firstNum + secondNum;
// 세번째 숫자가 결국은 피보나치 수열의 마지막 숫자가 된다.
last = thirdNum;
}
return last
//그 외 나머지 음수인 경우
}else{
let secondNum = -1;
let thirdNum = -1;
for (let i = -2; i > range; --i) {
firstNum = secondNum;
secondNum = thirdNum;
thirdNum = firstNum + secondNum;
// 세번째 숫자가 결국은 피보나치 수열의 마지막 숫자가 된다.
last = thirdNum;
}
return last
}
}
console.log(fibonacci(10)); // 1~10까지 차례대로 더한 수 = 55
console.log(fibonacci(-10)); // -1~-10까지 차례대로 더한 수 = -55
728x90