Суммируйте и разделите массив вот так.
arr[]={1,3,2,4,6,7,8,9,10, 11,12,16,5,8,7,8,4,6, 8,9,10, 11,12,16,2,4, 5};
split=2;
// этот arr[]
будем делить на 2 (без разбиений) части каждую с равными элементами split=1,2,3...nskip=2;
// skip-это не тот элемент, который нужно пропустить. skip=1,2,3...n
размер res[]
должно быть соответственно.group=3
// варьируются между 1,2,3..n
затем
res[0]=15 //1+4+8 res[1]=18//3+6+9 res[2]=19 //2+7+10 res[3]=24 //11+5+8 res[4]= 24 //12+8+4 res[5]= 29//16+7+6 res[6]=21 //8+11+2 res[7]=25 //9+12+4 res[8]=31 //10+16+5
и как мудрое разделение может быть от 1 до n.
arr[]={1,2,3...n}
элементыЧто я уже пробовал:
int[] arr = { 1,3,2,4,6,7,8,9,10, 11,12,16,5,8,7,8,4,6, 8,9,10, 11,12,16,2,4, 5}; int split = 2; int counter = arr.Length / (split); int skip = 2; int gor = 3; int len = arr.Length / gor; //int g1 = gor - 1; int[] tempArr = new int[counter]; for (int idx = 0; idx < counter; idx++) { int sum = 0; int cn = 0; for (int i = idx; i < arr.Length; i = i + skip + 1) { if (cn == gor) { break; } else { sum += arr[i]; cn++; } } tempArr[idx] = sum; } for (int i = 0; i < tempArr.Length; i++) { MessageBox.Show(tempArr[i].ToString()); } }Он дает первые три правильных, другие дают неправильные.
Maciej Los
Вы должны использовать отладчик, чтобы выяснить, где вы допустили ошибку в своем коде.
Kornfeld Eliyahu Peter
Ваше описание проблемы неясно, образец ввода и объяснение не вписываются в образец вывода по какой-либо логике...
1. разделение ... ну и что, если число элементов нечетное? Что нам делать с теми частями, которые у нас есть?
2. пропустить ... бегать линейно и пропускать некоторые элементы... Ладно... и что потом?
3. группа... вы имеете в виду сумму?
Simon_Whale
вы уже задавали этот вопрос вчера. как частичное решение было дано вам https://www.codeproject.com/Questions/1161820/Please-help-me-to-do-this-sum-and-split-array-like