C++ nie ma tail/rest na wektorze można ją nieefektywnie zasymulować:
int sumaWyrazow (vector<int>liczby) {
if(liczby.size() == 0) {
return 0;
}
return liczby[0] + sumaWyrazow(std::vector<int>(liczby.begin() + 1, liczby.end()));
}
Lepiej byłoby przekazywać jeszcze indeks do funkcji, (złożoność się poprawi, liniowa, a nie jak powyższy kwadratowa):
int sumaWyrazow1(std::vector<int> liczby, int i) {
if (i == liczby.size())
return 0;
return liczby[i] + sumaWyrazow1(liczby, i + 1);
}