Как найти шаблон?

Array = [1 3 6];

Мы можем разделить на непрерывные сегменты, называемые частями, и сохранить их как другой массив B:

B=[(1),(3),(6)]; B=1*1+3*1+6*1=10;
B=[(1,3),6]; B=(1+3)*2+6*1=14;
B=[(1,(3,6)]; B=1*1+(3+6)*2=19;
B=[(1,3,6)];  B=(1+3+6)*3=30;

Когда мы суммируем все результаты, мы получаем 10+14+19+30=73, Это конечный результат для Array = [1,3,6], Я хочу найти шаблон для любого размера массива.

Может быть array[1,2,3,4,5,6], array[1,5,6,7], array[5,777,88,11,22] и т.д. Как я могу это сделать?

-2

Решение

Чтобы закодировать это, вы, вероятно, хотите рекурсивное решение. Что-то вроде

int solve(int[] data) {
int len = data.length;
if(len ==1 ) return data[0];

// for the full sequence (1,2,3,4,5) its just he length times
// the sum
int res = sum(data) * len;

// now consider partitions
for(int i=0;i<len-1;++i) {
res += solve(data[0 .. i] )
res += solve(data[i+1 .. len-1])
}
return res
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]