8675309와 같은 음이 아닌 정수를 취하고 모든 인접 숫자 쌍 간의 차이의 절대 값을 계산하십시오.
들어 8675309
우리가 얻을 |8-6| = 2
, |6-7| = 1
, |7-5| = 2
, |5-3| = 2
, |3-0| = 3
, |0-9| = 9
. 이 결과를 함께 묶으면 음수가 아닌 다른 정수가 더 작아집니다 212239
. 프로세스를 반복하여 제공 11016
한 후, 0115
어느 자리,뿐만 간소화를 기록하지 않는 것이 관례 115
가되고, 04
또는 4
더 감소 될 수 없다. 이 모든 값을 합하면 우리는 얻을 수 8675309 + 212239 + 11016 + 115 + 4 = 8898683
있습니다.
자릿수 차이 합 (또는 DDS)을 숫자의 자릿수 차이를 반복하여 가져 와서 새 숫자를 만든 다음 모든 결과 숫자를 원본에 추가하는이 작업으로 정의 해 보겠습니다.
해당 DDS 시퀀스에서 처음 20 개의 값은 다음과 같습니다.
N DDS(N)
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 11
11 11
12 13
13 15
14 17
15 19
16 21
17 23
18 25
19 27
다음은 그래프가 매우 흥미로운 첫 번째 10000 값입니다 .
특히 1000 또는 100으로 플롯 할 때 동일하게 보이기 때문에 :
(나는 그것을 치과 의사의 계단 이라고 부를 것이다 ...)
도전
음수가 아닌 정수를 사용하여 DDS 값을 인쇄하거나 반환하는 프로그램 또는 함수를 작성하십시오. 예를 들어 입력이 8675309
이면 출력은이어야합니다 8898683
.
바이트 단위의 가장 짧은 코드가 이깁니다.