vector <unsigned long long> partsSum1;
for (int i = 0; i < (int)ls.size(); i++) {
long long int sum = 0;
for (int j = i; j < (int)ls.size(); j++) {
sum += ls[j];
}
partsSum1.push_back(sum);
}
partsSum1.push_back(0);
return partsSum1;
}
Это код без рекурсии.
vector <unsigned long long> partsSum(const vector <unsigned long long>& ls) {
vector <unsigned long long> ls1 = ls;
int a = 0, b = a; unsigned long long sum = 0;
if (a < (int)ls.size()) {
sum += ls[b];
}
a++;
partsSum();
}
А этот код я хотел сделать с рекурсией. Но не знаю, что вписать внизу в скобки. Можете подсказать пожалуйста?
кажется там так просто не получится vector<unsigned long long> partsSumr(const vector<unsigned long long>& ls, unsigned long long sum = 0){ if(ls.empty()) return vector<unsigned long long>{sum}; auto partsSum1 = partsSumr(vector<unsigned long long>(ls.begin(), ls.end()-1), sum + ls.back()); partsSum1.push_back(sum); return partsSum1; } может так сделать, вроде работает
Обсуждают сегодня