피보나치 수에 대해 들어봤을 것입니다. 나중에 시작하는 정수 시퀀스 1, 1
, 그리고 각각의 새로운 숫자는 마지막 두 숫자의 합입니까?
1 1 2 3 5 8 13...
등등. 피보나치 수에 대한 도전은 여기에서 꽤 인기가 있습니다 . 그러나 피보나치 수로 시작해야한다고 누가 말 1, 1
합니까? 왜 그들은 시작할 수 없었 0, 1
습니까? 자, 0부터 시작하도록 재정의합시다.
0 1 1 2 3 5 8 13...
하지만 ... 우리도 거기서 멈출 필요는 없습니다! 다음 두 숫자를 얻기 위해 마지막 두 숫자를 더할 수 있다면 두 번째 숫자에서 첫 번째 숫자를 빼서 새 숫자를 붙일 수도 있습니다. 따라서 다음과 1, 0
같이 시작할 수 있습니다 .
1 0 1 1 2 3 5 8 13...
우리는 심지어 부정적인 것으로 끝날 수 있습니다.
-1 1 0 1 1 2 3 5 8 13...
그리고이 시리즈는 영원히 계속됩니다. 나는 그것이 피보나치 수를 반영하는 방법이 흥미 롭다고 생각합니다.
13 -8 5 -3 2 -1 1 0 1 1 2 3 5 8 13...
이 시리즈를 "확장 피보나치 수"또는 EFN이라고 합니다. 에이 시리즈를 시작하는 명백한 부정 번호가 실제로 존재하지 않기 때문에, 우리는 말할 것이다 0 쇼에서 최대 0 , 일반 피보나치 수는 긍정적 인 지표에, 확장, 부정적인 (반 음?) 피보나치 수 연장 음수 지수에 다음과 같이 입력하십시오.
Indices: ...-7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 ...
Values: ...13 -8 5 -3 2 -1 1 0 1 1 2 3 5 8 13...
이것은 오늘날의 도전으로 이어집니다.
정수 N이 주어지면 EFN 시리즈 에서 N이 나타나는 모든 인덱스를 반환 합니다 .
이 작업에 대한 몇 가지 무작위 관찰 :
1 은 다른 숫자보다 EFN에 더 많이 나타납니다
[-1, 1, 2]
. 3 개 이상의 장소에는 숫자가 표시되지 않습니다.1보다 큰 피보나치 수는 1 번 (3, 8, 21 등) 또는 두 번 (2, 5, 13 등) 나타납니다.
규칙 설명 :
abs(N)
피보나치 숫자가 아닌 경우 EFN 시리즈에 표시 되지 않으므로 가능한 경우 아무것도 출력하지 않거나 빈 모음을 출력해야하거나 언어에서 가능하지 않은 경우 숫자가 아닌 상수 값을 출력 할 수 있습니다.- 경우 N이 의 여러 위치에 나타납니다 EFN , 당신의 출력을 정렬 할 필요가 없습니다. 각 인덱스는 정확히 한 번만 나타나야합니다.
- 대부분의 시퀀스 챌린지에서 1 기반 또는 0 기반 인덱싱을 사용할지 여부를 선택할 수 있지만 이 챌린지 는 설명 된 인덱싱을 사용해야합니다 (여기서 0은 0에 나타남).
- 모든 표준 형식을 통해 I / O를 수행 할 수 있습니다.
테스트 사례
-13: []
-12: []
-11: []
-10: []
-9: []
-8: [-6]
-7: []
-6: []
-5: []
-4: []
-3: [-4]
-2: []
-1: [-2]
0: 0
1: [-1, 1, 2]
2: [-3, 3]
3: [4]
4: []
5: [-5, 5]
6: []
7: []
8: [6]
9: []
10: []
11: []
12: []
13: [-7, 7]
그리고 더 큰 테스트 사례 :
89: [-11, 11]
1836311903: [46]
10000: []
-39088169: [-38]
평소와 같이 바이트 단위의 최단 답변이 이깁니다!