미친 수학자는 많은 숫자를 소유하고 있기 때문에 그가 남긴 공간은 상당히 제한적입니다. 일부를 저장하려면 정수를 접어야하지만 불행히도 실제로 게으르다. 당신이 그를 도와주고 싶다면 당신의 임무는 우리의 숫자 미치광이에 주어진 양의 정수를 접는 함수 / 프로그램을 만드는 것입니다.
정수를 접는 방법?
숫자의 합으로 균등하게 나눌 수있는 경우 숫자의 합으로 나눕니다. 해당 요구 사항을 충족하지 않으면 나머지를 숫자의 합계로 나눌 때 가져갑니다. 결과가에 도달 할 때까지 프로세스를 반복하십시오 1
. 접힌 정수는 수행해야하는 작업 수입니다. 예를 들어 봅시다 1782
:
자릿수의 합을 구하십시오
1 + 7 + 8 + 2 = 18
.1782
로 균등하게 나눌 수18
있으므로 다음 숫자는1782 / 18 = 99
입니다.99
로 균등하게 나눌 수 없으므로9 + 9 = 18
나머지를 취합니다99 % 18 = 9
.9
는 분명히 나눌 수9
있으므로 우리는 그것을 나누고 얻습니다1
.
결과 3
를 얻으려면 3 개의 작업이 필요했기 때문 1
입니다.
규칙 및 사양
일부 정수는 숫자의 합계가 동일 할 수도 있습니다
1
같은,10
또는100
. 귀하의 프로그램은 그러한 경우를 처리 할 필요가 없습니다. 즉, 입력으로 주어진 정수의 자릿수가 합과 같지1
않으며, 주어진 정수로 조작하지 않으면 자릿수의 자릿수1
( "제외1
," 목표"). 예를 들어, 수신하지 않습니다10
또는20
입력으로.입력은보다 큰 양의 정수
1
입니다.기본 허점이 적용됩니다.
표준 수단으로 입력하고 출력 할 수 있습니다 .
테스트 사례
입력-> 출력 2-> 1 5-> 1 9-> 1 18-> 2 72-> 2 152790-> 2 152-> 3 666-> 3 777-> 3 2010-> 3 898786854-> 4
다음은 프로세스를 시각화하고 더 많은 테스트 사례를 시도 할 수 있는 프로그램 입니다.
이것은 code-golf 이므로 각 언어에서 가장 짧은 코드 (바이트 단위)가 이깁니다!
8987868546
유효한 입력, 그것은 테스트 도구를 중단하고, 답변 또한 많은 (전부는 아니지만) ...합니다
898786854
아닙니다 8987868546
( 6
끝에 a 를 추가했습니다 )
8987868546
1이 아니고 ( 규칙 1 충족 ) 8987868546
1보다 큰 양의 정수 ( 규칙 2 충족 )입니다.