n
OEIS에 A014258 로 기록 된 Iccanobif 시퀀스의 최대 정수 까지 시퀀스를 출력하거나 반환하는 프로그램 또는 명명 된 함수를 작성하십시오 . 시퀀스 ( 0
) 에서 0 번째 요소 만 0 이면 인쇄됩니다 n
.
시퀀스는 표준 피보나치 시퀀스처럼 시작하여 생성되지만 두 개의 이전 숫자를 추가 한 후 결과를 뒤집고 선행 0을 삭제합니다. 흥미로운 사실은 적어도이 순서가 엄격하게 증가하지 않는다는 것입니다 (아래 목록 참조). 또한 피보나치 수열보다 크거나 같은 것 같습니다.
프로그램의 입력은 정수 여야합니다.
시청의 즐거움을 위해 시퀀스의 처음 20 개 숫자가 여기에 제공됩니다.
0, 1, 1, 2, 3, 5, 8, 31, 93, 421, 415, 638, 3501, 9314, 51821, 53116, 739401, 715297, 8964541, 8389769
표준 허점은 금지되어 있습니다.
최단 프로그램이 이깁니다.
편집 : 시퀀스가 0 번째 요소로 시작하고 0 인 경우 포함되어야 함을 명확히하기 위해 메모를 추가했습니다 n
.
IO 가능성의 예 :
0 -> 0
1 -> 0 1
6 -> 0 1 1 2 3 5 8
17 -> [0, 1, 1, 2, 3, 5, 8, 31, 93, 421, 415, 638, 3501, 9314, 51821, 53116, 739401, 715297]
이제 몇 가지 답변이 있습니다. 다음은 마크 업으로 숨기려고 열심히 노력한 Python 2의 구현입니다.
반복 :
# 내 초기 프로그램에 가장 가깝습니다. 73 바이트 이 프로그램은 또한 스택 오버플로에 도달 할 수 없습니다. 10 초 이내에 n = 5000 동안 실행됩니다.i,a,b=input(),0,1 print a while i:print b;i,a,b=i-1,b,int(str(a+b)[::-1])
재귀 :
# 이것은n
후행 줄 바꿈을 인쇄합니다 . 64 바이트 큰 n 값에 대해 스택 오버플로 오류가 발생합니다.def f(n,i=0,j=1):print i,n and f(n-1,j,int(str(i+j)[::-1]))or'';