부분 문자열 곱하기


11

두 개의 정수를 입력으로받는 프로그램을 작성하십시오. 첫 번째는 임의의 정수일 수 있으며 두 번째는 첫 번째 숫자의 자릿수보다 작거나 같습니다. 이 숫자 a들을 b각각 이라고하자 .

프로그램은 다음을 수행합니다

  • 1끝에 s 의 최소 ​​수를 연결하여 a자릿수를 a으로 나눌 수 b있습니다.
  • 분할 a마다 함께 b자리.
  • 각 섹션의 숫자를 곱하십시오.
  • 제품을 함께 연결하십시오 (숫자 중 하나가 0이면 연결 0).
  • b숫자 보다 적은 숫자가 형성 될 때까지이 과정을 반복하십시오 . 프로세스 수뿐만 아니라 출력으로 이것을 인쇄하십시오. 단위는 필요하지 않지만, 최종 횟수와 반복 횟수 사이의 분리 형태입니다.

다음 테스트 사례에서는 이해를 돕기 위해 개별 단계가 표시됩니다. 프로그램이 단계를 표시 할 필요는 없습니다.

테스트 사례 1

1883915502469, 3

단계

1883915502469          //Iteration 1
188391550246911
188 391 550 246 911
64 27 0 48 9
64270489               //Iteration 2
642704891
642 704 891
48 0 72
48072                  //Iteration 3
480721
480 721
0 14
014                    //Iteration 4
0

샘플 출력 :0, 4

테스트 사례 2

792624998126442, 4

단계

792624998126442        //Iteration 1
7926249981264421
7926 2499 8126 4421
756 648 96 32
7566489632             //Iteration 2
756648963211
7566 4896 3211
1260 1728 6
126017286              //Iteration 3
126017286111
1260 1728 6111
0 112 6
01126                  //Iteration 4
01126111
0112 6111
0 6
06

샘플 출력 :06, 4


프로그램은 if 오류를 반환해야합니다 (또는 아무것도 인쇄하지 않아야 함) b>len(a). 또한 b1과 같거나 프로그램이 무한 루프를 발생시킵니다.


이것은 코드 골프이므로 표준 규칙이 적용됩니다. 바이트 단위의 최단 코드가 이깁니다.


완전한 프로그램이어야합니까, 아니면 기능이 충분합니까?
Ypnypn

@Ypnypn 완전한 프로그램.
Arcturus

따라서 선행 0은 길이에 a포함되며 출력에도 포함됩니까?
mbomb007

@ mbomb007 그렇습니다. 초기 번호에만 있습니다. 제로 체인은 제품 연결에서 단일 제로로 단축됩니다.
Arcturus

@ypnypn 당신은 질문에 명시 적으로 말해야합니다. 태그 위키의 "표준 규칙"에는 "다음 기본값이 있습니다 ... 답변은 전체 프로그램 또는 기능 (또는 동등한) 일 수 있습니다."
Joshua Taylor

답변:



1

펄 6, 116 바이트

my ($a,$b)=@*ARGS;for 0..* {if $b>$a.chars {$_&&say "$a,$_";last};$a=map({[*] @_},($a~1 x$b-1).comb.rotor($b)).join}
my ($a,$b)=@*ARGS;
for 0..* {
  if $b>$a.chars {$_&&say "$a,$_";last}; # you need a 「;」 if you remove the newline
  $a=map(
    {[*] @_},
    ($a~1 x$b-1).comb.rotor($b)
  ).join
}

1

Pyth, 32 바이트

IglzQf<l=zjk*MsMMc+z*\1%_lzQQQ)z

데모

두 줄로 입력 한 a다음을 입력합니다 b. 두 줄에 출력을 제공하고 작업 뒤에 결과를 제공합니다.

인주: +z*\1%_lzQ

촙: c ... Q

정수 목록으로 변환 : sMM

제품을 가져 가십시오 : *M

str으로 다시 변환 : jk

다시 할당 : =z

종료 확인 : <l ... Q

반복 인쇄 수행 : f ... )

인쇄 결과 : z

아무것도 인쇄 할 것인지 초기 확인 : IglzQ

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.