문제

Mathematica 7에서 두 개의 양의 정수를 연결하는 가장 효율적인 방법은 무엇입니까?

cc[123, 4567] >> 1234567

더 두 개 이상

cc[123, 4, 567, 89] >> 123456789

도움이 되었습니까?

해결책

이것은 마지막 솔루션보다 많은 정수에 대해 약간 더 빠릅니다.

ToExpression[StringJoin @@ Map[IntegerString, {##}]] &
.

보다 간결한 대안은 단일 인수를 수락하는 것입니다.

ToExpression@StringJoin@IntegerString@#&
.

IntegerStringListable를 기반으로합니다.

다른 팁

이것은 출력이 기계 크기이어야하기 때문에 짧은 정수에 대해서만 제대로 작동하지만 가장 빠른 것입니다 :

Compile[{{a, _Integer}, {b, _Integer}}, 
  b + a 10^Floor[1 + Log[10, b]]
]
.

더 긴 정수의 경우 가장 빨리 찾을 수 있습니다 :

FromDigits[{##}, 10^IntegerLength@#2] &
.

많은 정수를 연결하기 위해 위의

다음과 같은 많은 정수를 연결합니다.

FromDigits[Join @@ IntegerDigits[{##}]] & 
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top