피고나치수열
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
}