배경
다음과 같이 정의 된 순서를 고려하십시오.
- 첫 번째 요소는 0입니다.
- 두 번째 요소는 4입니다.
- 세 번째 요소부터 다음과 같이 값을 계산할 수 있습니다.
- 0에서 시퀀스의 이전 요소까지 정수 세트를 가져옵니다 (포함 또는 배타, 중요하지 않음).
- 시퀀스에서 이미 나타난 정수를 세트에서 제거합니다.
- 세트의 나머지 요소들을 더하는 것; 그것이 당신이 원하는 가치입니다.
흥미롭게도이 시퀀스는 아직 OEIS 에없는 것 같습니다 .
작업
정수 n 을 입력으로 받아서 시퀀스 의 n 번째 요소를 출력 하는 프로그램 또는 함수를 작성하십시오 .
테스트 사례
시퀀스의 처음 몇 가지 요소는 다음과 같습니다.
- 0
- 4
- 6 (1 + 2 + 3)
- 11 (1 + 2 + 3 + 5)
- 45 (1 + 2 + 3 + 5 + 7 + 8 + 9 + 10)
- 969 (1 + 2 + 3 + 5 + 7… 10 + 12… 44)
- 468930 (1 + 2 + 3 + 5 + 7… 10 + 12… 44 + 46… 968)
설명
- 이론적으로 프로그램 은 무한정의 큰 정수를 갖고 무제한의 메모리에 액세스하는 언어의 변형에서 실행되는 경우 임의의 n 을 처리 할 수 있어야합니다 . (큰 숫자가없는 언어는 468930 이상을 얻을 수는 없지만 대답을 하드 코딩 할 이유는 없습니다.)
- 시퀀스에 대해 0 기반 또는 1 기반 색인을 선택할 수 있습니다 (예 : n = 1이 첫 번째 요소를 반환 하는지 , n = 2가 두 번째 요소를 반환 하는지 등) 또는 n = 0이 첫 번째 요소를 반환 하는지 여부는 사용자에게 달려 있습니다 , N = 1 번째 요소 등)에.
- 사용하는 알고리즘이나 효율성에 대한 요구 사항은 없습니다. 시퀀스의 정의를 직접 구현할 수도 있지만 (실제로 비효율적 임에도 불구하고) 동일한 결과를 가져 오는 다른 알고리즘을 구현할 수도 있습니다.
승리 조건
이것은 code-golf 이므로 바이트 단위로 측정 된 가장 짧은 올바른 프로그램이 승리합니다.