하나의 숫자 기본 시스템에서 블록 배열을 취하는 루틴을 작성하고 다른 숫자 기본 시스템에서 블록 배열로 변환하십시오. 시작 및 종료 시스템은 모두 임의적이며 매개 변수로 승인되어야합니다. 입력 배열은 임의의 길이 일 수 있습니다 (C와 같이 배열에 배열 길이가 저장되지 않은 언어를 사용하는 경우 길이 매개 변수가 함수에 전달되어야 함).
작동 방식은 다음과 같습니다.
fromArray = [1, 1]
fromBase = 256
toBase = 16
result = convertBase(fromArray, fromBase, toBase);
반환해야 할 [0, 1, 0, 1]수도 있고 가능할 수도 있습니다 [1, 0, 1]( 0대답은 값을 변경하지 않으므로 선택 사항 임).
다음은 몇 가지 테스트 벡터입니다.
신원 테스트 벡터
fromArray = [1, 2, 3, 4] fromBase = 16 toBase = 16 result = [1, 2, 3, 4]사소한 테스트 벡터
fromArray = [1, 0] fromBase = 10 toBase = 100 result = [10]큰 테스트 벡터
fromArray = [41, 15, 156, 123, 254, 156, 141, 2, 24] fromBase = 256 toBase = 16 result = [2, 9, 0, 15, 9, 12, 7, 11, 15, 14, 9, 12, 8, 13, 0, 2, 1, 8]정말 큰 테스트 벡터
fromArray = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] fromBase = 2 toBase = 10 result = [1, 2, 3, 7, 9, 4, 0, 0, 3, 9, 2, 8, 5, 3, 8, 0, 2, 7, 4, 8, 9, 9, 1, 2, 4, 2, 2, 3]고르지 않은 기본 벡터
fromArray = [41, 42, 43] fromBase = 256 toBase = 36 result = [1, 21, 29, 22, 3]
다른 기준 / 규칙 :
모든 정수 변수는 모든 제네릭 입력 범위에 대해 표준 32 비트 부호있는 정수에 맞아야합니다.
중개자가 32 비트 부호있는 정수의 배열에 지나지 않는 한 중개 표현으로 변환 할 수 있습니다.
2에서 256 사이의베이스를 처리 할 것으로 예상됩니다. 그보다 더 높은베이스를 지원할 필요는 없습니다 (그러나 원한다면 꼭).
최소 1000 개의 요소까지 입력 및 출력 크기를 처리 할 것으로 예상됩니다 . 2 ^ 32-1 요소로 확장되는 솔루션이 더 좋지만 1000은 괜찮습니다.
이것은 반드시 이러한 규칙을 충족하는 가장 짧은 코드를 갖는 것은 아닙니다. 가장 깨끗하고 가장 우아한 코드를 만드는 것입니다.
이제는 이것이 쉬운 일이 아니므로 거의 효과가 있는 대답이 받아 들여질 수 있습니다!