배경:
실제 세계의 기본 덧셈 및 곱셈과 같은 표준 연산 수학은 다음과 같이 작동합니다.
12 + 123 = 135
과
12 * 123 = 1476
재미 있고 지루하지 않습니다! 많은 학교들이 이미 이것을 공식 알고리즘의 연습, 연습, 연습으로 해석하고 있습니다. 그것은 매우 단단하고 지루한 수학적 다이어트를 의미 하며이 도전에서 의도 된 것이 아닙니다. 사랑하는 사이트에서 즐거운 시간을 보내십시오.
두 개의 양의 정수를 더한 다음 결과의 모든 숫자를 다시 추가하는 프로세스를 고려하십시오. 한 자릿수가 얻어 질 때까지 덧셈을 반복합니다. 예를 들면 다음과 같습니다.
- 결과
12 + 123
는 135입니다. - 우리가 얻는 135의 모든 자리수를 더
1 + 3 + 5 = 9
합니다.
이 반복 가산에서 단일 숫자 값 9를 얻는 데 필요한 단계 수는 2입니다.
이전의 덧셈 과정과 마찬가지로 두 양의 정수의 곱셈도 같은 과정을 따릅니다. 결과의 모든 자리수를 곱한 다음 한 자리 만 남을 때까지이 과정을 반복하십시오. 위의 예를 보자.
- 결과
12 * 123
는 1476입니다. - 우리가 얻는 1476의 모든 자리수에 곱하십시오
1 * 4 * 7 * 6 = 168
. - 우리가 구한 168의 모든 자리수에 다시 곱하십시오
1 * 6 * 8 = 48
. - 우리가 얻는 48의 모든 자리수를 다시 곱하십시오
4 * 8 = 32
. - 우리가 구한 32의 모든 자리수에 다시 한번 곱하십시오
3 * 2 = 6
.
이 반복 곱셈의 단일 자릿수 값 6을 얻는 데 필요한 단계 수는 5입니다.
이 문제의 술과 수학 표기법의 오용을 피하기 위해, 나는이 두 더미 표기법을 소개 : (+)
와 (*)
, 하지만 당신은 당신이 원하는 표기법을 사용할 수 있습니다 다음과 같은 일을 :
- 단일 값을 얻기 위해 반복되는 가산 과정의 연산은입니다
12 (+) 123 = 9
. - 단일 값을 얻기 위해 반복 된 곱셈 과정의 연산은입니다
12 (*) 123 = 6
.
도전:
과제는 프로그램 또는 수행 할 수있는 기능 중 기입하는 동작 모두 : 배경 기술 부분에서 설명한 바와 같이 (+)
및 (*)
.
입력:
프로그램이나 함수의 입력은 두 개의 양의 정수 한 조작이다 (+)
하고 (*)
. 입력 형식은 프로그래머가 임의로 선택합니다 . 당신은 입력, 예를 들어, 포맷 할 수있다 a (+) b
거나 F(a, (+), b)
또는 여러분이 원하는 형식을.
산출:
프로그램 또는 기능의 출력에는 원하는대로 작업 결과 및 자유형 형식에 필요한 단계 수가 포함되어야합니다.
테스트 사례 (입력 및 출력 형식 무시) :
81 (+) 31 --> (4 ; 2)
351 (+) 14568 --> (6 ; 3)
21 (*) 111 --> (8 ; 3)
136 (*) 2356 --> (0 ; 2)
일반적인 규칙:
- 이것은 code-golf 이므로 바이트 단위의 가장 짧은 대답이 도전에 이깁니다.
esolangs가 일반 언어로 답변을 게시하지 못하게하지 마십시오. 프로그래밍 언어로 가능한 한 짧은 답변을 제공하여이 도전을 즐기십시오. 현명한 답변과 명확한 설명을 게시하면 사용하는 프로그래밍 언어에 관계없이 귀하의 답변에 감사하게됩니다 (따라서 공감). - 표준 규칙이 답변에 적용 되므로 STDIN / STDOUT, 기능 / 방법에 적절한 매개 변수, 전체 프로그램 등을 사용할 수 있습니다. 선택은 본인의 것입니다.
- 가능하면 프로그램이 많은 수를 올바르게 처리 할 수 있습니다. 그렇지 않다면 괜찮을 것입니다.