0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765
그러나 대신에, f(n) = f(n-1) + f(n-2)
우리는 이전 2 개의 항목의 디지털 합계 를 취할 것 입니다.
0, 1
차이가 급격히 나타난 후 시퀀스는 여전히로 시작해야합니다 . 이 목록은 색인이 0이며 1 색인을 사용할 수도 있습니다.
f(0) = 0
f(1) = 1
f(2) = 1 # 0 + 1
f(3) = 2 # 1 + 1
f(4) = 3 # 1 + 2
f(5) = 5 # 2 + 3
f(6) = 8 # 3 + 5
f(7) = 13 # 8 + 5
f(8) = 12 # 8 + 1 + 3
f(9) = 7 # 1 + 3 + 1 + 2
f(10) = 10 # 1 + 2 + 7
f(11) = 8 # 7 + 1 + 0
f(12) = 9 # 1 + 0 + 8
f(13) = 17 # 8 + 9
f(14) = 17 # 9 + 1 + 7
f(15) = 16 # 1 + 7 + 1 + 7
f(16) = 15 # 1 + 7 + 1 + 6
f(17) = 13 # 1 + 6 + 1 + 5
f(18) = 10 # 1 + 5 + 1 + 3
f(19) = 5 # 1 + 3 + 1 + 0
f(20) = 6 # 1 + 0 + 5
f(21) = 11 # 5 + 6
f(22) = 8 # 6 + 1 + 1
f(23) = 10 # 1 + 1 + 8
f(24) = 9 # 8 + 1 + 0
f(25) = 10 # 1 + 0 + 9
f(26) = 10 # 9 + 1 + 0
f(27) = 2 # 1 + 0 + 1 + 0
(After this point it repeats at the 3rd term, 0-indexed)
참고 : 챌린지 자체를 게시 할 때까지 반복을 알지 못했고 여기에서 또 다른 소설 피보나치 챌린지를 작성하는 것이 불가능하다고 생각했습니다.
당신의 작업에는 숫자가 주어 n
지며이 시퀀스의 n 번째 숫자가 출력됩니다.
처음 3 자리 : [0,1,1]
,
24 자리 반복 패턴 : [2,3,5,8,13,12,7,10,8,9,17,17,16,15,13,10,5,6,11,8,10,9,10,10]
힌트 :이 반복을 유리하게 활용할 수 있습니다.
이것은 code-golf 이며, 가장 낮은 바이트 수가 승자입니다.
보너스 : 귀하의 답변에 반복을 사용하는 경우, 시퀀스에서 100 점의 현상금을 사용하는 최저 바이트 수 답변을 수여합니다. 이것은 원래 답변 후에 원래 답변의 일부로 제출해야합니다. 내가 말하는 것에 대한 예제 로이 게시물을 참조하십시오 : https://codegolf.stackexchange.com/a/108972/59376
이 보너스를 받으려면 O(1)
설명과 함께 일정한 시간 ( )으로 코드를 실행해야합니다 .
보너스 수상자 : Dennis https://codegolf.stackexchange.com/a/108967/59376 <Dennis won.
가장 고유 한 구현 : https://codegolf.stackexchange.com/a/108970/59376
(또한 정답을 선택한 후 최종 점수 100 점을받습니다)
%24
"정상적인"솔루션에 추가합니까?
O(1)
합니다. 코드가 실제로 반복을 악용하는 경우 코드는 일정한 시간 안에 실행되어야합니다.