5주차 목요일 알고리즘

문혜민·2022년 4월 14일
0

5주차 수업내용

목록 보기
7/8

피고나치수열

function solution(n) {
const answer=[0,1]
for(let i =2; i<=n; i++){
answer[i]=answer[i-1]+answer[i-2]
}
return answer[n]%1234567
}

이러면 안됨..

function solution(n) {
const answer=[0,1]
for(let i =2; i<=n; i++){
answer[i]=answer[i-1]+answer[i-2]
console.log(answer)
}
return answer[n]%1234567
}
이러면됨.. 왤까???
이유는
자바스크립트가 숫자열이 엄청길때(a=2**53-1 이 될때까지) 는 이상한 문자열로 반환함(1.1111111111111112e+54같은)
Number.isSafeInteger() 에 해당 수 넣어서 true 값이면 길어도 출력가능하다는거고 false 면 안된다는것!
%1234567 로 값을 가볍게해주는걸 피고나치마다 미리해주면 값이 나오는것!

메서드

function solution(n) {
let prev =0 //0번째 피보나치수의 결과
let next=1//1번째 피보나치수의 결과
let sum = prev+next // 2번째 피보나치 수의 결과
const answer=new Array(n-1).fill(1).reduce(acc=>{
sum=(prev+acc)%1234567
prev=acc
next=sum

return sum

})

return answer
}

profile
프론드엔드 개발하면서 메모장처럼 쓰는즁

0개의 댓글

관련 채용 정보