입력:
정수 n
이다 >=0
또는 >=1
( f(0)
선택 사항)
산출:
n
아래 순서 의 '번째 숫자 또는 n
'번째 숫자 까지의 순서 입니다.
순서:
(0),1,-1,-3,0,5,-1,-7,0,9,-1,-11,0,13,-1,-15,0,17,-1,-19,0,21,-1,-23,0,25,-1,-27,0,29,-1,-31,0,33,-1,-35,0,37,-1,-39,0,41,-1,-43,0,45,-1,-47,0,49,-1,-51,0,53,-1,-55,0,57,-1,-59,0,61,-1,-63,0,65,-1,-67,0,69,-1,-71,0,73,-1,-75,0,77,-1,-79,0,81,-1,-83,0,85,-1,-87,0,89,-1,-91,0,93,-1,-95,0,97,-1,-99
이 시퀀스는 어떻게 만들어 집니까?
f(n=0) = 0
(선택 사항)
f(n=1) = f(0) + n
또는 f(n=1) = 1
f(n=2) = f(1) - n
f(n=3) = f(2) * n
f(n=4) = f(3) / n
f(n=5) = f(4) + n
등
또는 의사 코드에서 :
function f(integer n){
Integer result = 0
Integer i = 1
Loop as long as i is smaller than or equal to n
{
if i modulo-4 is 1:
result = result plus i
if i modulo-4 is 2 instead:
result = result minus i
if i modulo-4 is 3 instead:
result = result multiplied with i
if i modulo-4 is 0 instead:
result = result integer/floor-divided with i
i = i plus 1
}
return result
}
그러나 언급했듯이 시퀀스에는 두 가지 패턴이 있습니다.
0, ,-1, ,0, ,-1, ,0, ,-1, ,0, ,-1, ,0, ,-1, ,...
,1, ,-3, ,5, ,-7, ,9, ,-11, ,13, ,-15, ,17, ,-19,...
따라서 동일한 시퀀스를 생성하는 다른 접근 방식도 물론 완벽합니다.
도전 규칙 :
- 인덱싱 된 입력과 인덱싱 된 입력은 같은 결과를 낳습니다 (따라서
f(0)
포함하려는 경우 0 인덱싱 된 입력의 경우 선택 사항 임). n
이 시퀀스 의 '번째 숫자 를 출력 할 수 있습니다 . 또는n
'번째 숫자를 포함하여 전체 시퀀스 . ( 또는f(5)
결과를 초래할 수 있습니다 .)5
0,1,-1,-3,0,5
n
'번째 숫자 까지의 시퀀스를 출력하도록 선택하면 출력 형식이 유연합니다. 목록 / 배열, 쉼표 / 공백 / 줄 바꿈 문자열 또는 STDOUT으로 인쇄 등일 수 있습니다.
- 나누기 (
/
)는 정수 / 바닥 나누기이며 0으로 반올림합니다 (일부 언어의 경우와 같이 음의 무한대가 아닌).
일반 규칙:
- 이것은 code-golf 이므로 바이트 단위의 최단 답변이 이깁니다.
코드 골프 언어가 코드 골프 언어 이외의 언어로 답변을 게시하지 못하게하지 마십시오. '모든'프로그래밍 언어에 대한 가능한 한 짧은 대답을 생각해보십시오. - 표준 규칙이 답변에 적용 되므로 STDIN / STDOUT, 적절한 매개 변수 및 리턴 유형의 전체 프로그램과 함께 함수 / 방법을 사용할 수 있습니다. 당신의 전화.
- 기본 허점 은 금지되어 있습니다.
- 가능하면 코드 테스트 링크를 추가하십시오.
- 또한 필요한 경우 설명을 추가하십시오.
위의 추가 테스트 사례 n=100
:
Input Output
1000 0
100000 0
123 -123
1234 -1
12345 12345
123456 0