양의 정수의 디지털 근 (반복 된 디지털 합)은 숫자 합을 계산하기 위해 이전 반복의 결과를 사용하여 각 반복에서 합산 숫자의 반복 프로세스에 의해 얻은 (한 자릿수) 값입니다. 한 자리 숫자에 도달 할 때까지 프로세스가 계속됩니다.
예를 들어, 루트의 디지털 65536 이다 7 때문에 6 + 5 + 5 + 3 + 6 = 25 및 2 + 5 = 7 .
모든 디지털 근을 정렬하는 것은 많은 수의 1 초로 시작하기 때문에별로 의미가 없습니다 .
대신, 모든 단일 자릿수 정수와 함께 디지털 뿌리, 그런 다음 모든 두 자리 수와 함께 디지털 뿌리, 삼중, 사중 등의 목록을 작성합니다.
이제 각 목록에 대해 디지털 뿌리가 1 인 모든 정수가 먼저 나타난 다음 디지털 뿌리가 2 인 모든 정수 등이 나타나 도록 정렬합니다 . 정렬은 안정적이므로 특정 디지털 뿌리를 가진 정수 목록은 정렬 후 오름차순이어야합니다.
마지막으로 이러한 목록을 하나의 단일 시퀀스로 연결합니다. 이 순서는 모든 한 자리 숫자, 모든 두 자리 숫자 (디지털 루트로 정렬), 모든 세 자리 숫자 등으로 시작합니다.
도전:
양의 정수 n 을 입력으로 취하여 위에서 설명한 순서로 n 번째 숫자를 출력하십시오 . 목록이 0- 인덱스 중 1- 인덱스 인지를 선택할 수 있습니다 .
순서는 다음과 같습니다.
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 19, 28, 37, 46, 55, 64, 73, 82, 91, 11, 20, 29 ...
72, 81, 90, 99, 100, 109, 118, ...
981, 990, 999, 1000, 1009, 1018, 1027, ...
테스트 사례 :
테스트 사례는 1- 색인입니다.
n f(n)
9 9
10 10
11 19
40 13
41 22
42 31
43 40
44 49
45 58
600 105
601 114
602 123
603 132
604 141
605 150
4050 1453
4051 1462
4052 1471
4053 1480
4054 1489
4055 1498
더 쉽게 복사 :
n = 9, 10, 11, 40, 41, 42, 43, 44, 45, 600, 601, 602, 603, 604, 605, 4050, 4051, 4052, 4053, 4054, 4055,
f(n) = 9, 10, 19, 13, 22, 31, 40, 49, 58, 105, 114, 123, 132, 141, 150, 1453, 1462, 1471, 1480, 1489, 1498
설명 :
- n 개의 첫 번째 요소를 모두 출력하지 못할 수 있습니다 . n 번째 만 출력해야합니다 .
- 코드는 이론적으로 최대 10 ^ 9 까지의 모든 정수에 대해 작동해야 하지만 999 보다 큰 입력에 대해 TIO (또는 시간 제한이있는 다른 인터프리터)에서 시간 초과되면 괜찮습니다 .
- 설명이 권장됩니다.
그것은의 코드 골프 , 각 언어 승리의 짧은 코드 그래서! 당신이 관리 할 수있는 것보다 짧은 경우라도 골프를 치고 싶은 언어로 된 다른 솔루션에 낙심하지 마십시오!