Reputation: 25
Given an array of positive integers a, I want to calculate the sum
of every possible a[i] ∘ a[j]
, where a[i] ∘ a[j]
is the concatenation of the string representations of a[i]
and a[j]
respectively.
Example
For a = [10, 2], the output should be solution(a) = 1344.
a[0] ∘ a[0] = 10 ∘ 10 = 1010,
a[0] ∘ a[1] = 10 ∘ 2 = 102,
a[1] ∘ a[0] = 2 ∘ 10 = 210,
a[1] ∘ a[1] = 2 ∘ 2 = 22.
So the sum is equal to 1010 + 102 + 210 + 22 = 1344.
For a = [8], the output should be solution(a) = 88.
For a = [1, 2, 3], the output should be solution(a) = 198.
a[0] ∘ a[0] = 1 ∘ 1 = 11,
a[0] ∘ a[1] = 1 ∘ 2 = 12,
a[0] ∘ a[2] = 1 ∘ 3 = 13,
a[1] ∘ a[0] = 2 ∘ 1 = 21,
a[1] ∘ a[1] = 2 ∘ 2 = 22,
a[1] ∘ a[2] = 2 ∘ 3 = 23,
a[2] ∘ a[0] = 3 ∘ 1 = 31,
a[2] ∘ a[1] = 3 ∘ 2 = 32,
a[2] ∘ a[2] = 3 ∘ 3 = 33.
The total result is 11 + 12 + 13 + 21 + 22 + 23 + 31 + 32 + 33 = 198.
Upvotes: 1
Views: 1905
Reputation: 21
Python Solution for this problem:
def solution(a):
lowSum = 0
cnt = 0
for i in range(len(a)):
lowSum += a[i];
cnt += lowSum * len(a)
for j in range(len(a)):
size = len(str(a[j]))
offset = iPower(10, size)
cnt = cnt + lowSum * offset
return cnt
def iPower(base, power):
result = 1
for i in range(1,power+1):
result *= base
return result
Upvotes: 2
Reputation: 290
The above task can be solved using the following PHP code:
Notes: $a = Integer array, $result = Integer
function solution($a) {
$result = 0;
for($i=0;$i<count($a);$i++) {
for($j=0;$j<count($a);$j++) {
$result += (int)$a[$i].$a[$j];
}
}
return $result;
}
Try my above solution.
Upvotes: 2