각 숫자가 n 번 반복되는 자연수 [1, ∞) 의 첫 번째 k 항의 합으로 f n (k) 을 정의 해 봅시다 .
k | 0 1 2 3 4 5 6 7 8 9
--------+-------------------------------------------------
f_1(k) | 0 1 3 6 10 15 21 28 36 45
deltas | +1 +2 +3 +4 +5 +6 +7 +8 +9
--------+-------------------------------------------------
f_2(k) | 0 1 2 4 6 9 12 16 20 25
deltas | +1 +1 +2 +2 +3 +3 +4 +4 +5
--------+-------------------------------------------------
f_3(k) | 0 1 2 3 5 7 9 12 15 18
deltas | +1 +1 +1 +2 +2 +2 +3 +3 +3
정사각형 배열로서 이것의 대각 대각선은 OEIS 시퀀스 A134546 과 유사합니다 .
도전
음이 아닌 두 정수 n과 k 를 취하고 f n (k)를 출력 하는 프로그램 / 함수 를 작성하십시오 .
명세서
- 표준 I / O 규칙이 적용됩니다 .
- 표준 허점 은 금지되어 있습니다.
- 귀하의 솔루션 은 n 및 / 또는 k에 대해 0 인덱싱되거나 1 인덱싱 될 수 있지만 어느 것을 지정하십시오.
- 이 과제는 모든 언어에서 가장 짧은 방법을 찾는 것이 아니라 각 언어에서 가장 짧은 방법을 찾는 것입니다 .
- 달리 지정하지 않는 한 코드는 일반적으로 인코딩 UTF-8 에서 바이트 단위 로 점수 가 매겨 집니다.
- 이 시퀀스를 계산하는 내장 함수는 허용 되지만 내장 기능에 의존하지 않는 솔루션을 포함하는 것이 좋습니다.
- "실제적인"언어에 대한 설명도 권장 됩니다.
테스트 사례
이 테스트 사례에서 n 은 1- 인덱싱되고 k 는 0- 인덱싱됩니다.
n k fn(k)
1 2 3
2 11 36
11 14 17
14 21 28
21 24 27
24 31 38
31 0 0
몇 가지 더 나은 형식으로 :
1 2
2 11
11 14
14 21
21 24
24 31
31 0
1, 2
2, 11
11, 14
14, 21
21, 24
24, 31
31, 0
참조 구현
이것은 Haskell 로 작성되었습니다 .
f n k = sum $ take k $ replicate n =<< [1..]
f_n(0) = 0
에 대한 k
인덱스 0을?
k
용어가 아닌 반복 된 자연수 목록에서 첫 번째 용어 만 합산합니다 n*k
.