Io sono un principiante in C++ ed è stato incaricato di scrivere una funzione che restituisce i fattori di un numero. Di seguito, ho inserito la funzione che ho creato anche chiamato print_vector
che stampa tutti gli elementi di un vettore per la Console.
Nel mio incarico, al fine di verificare se il factorize
funzione di lavoro, dobbiamo usare il test_factorize
la funzione che ho anche incluso. Tuttavia, il problema che ho eseguito è che il dato test_factorize
non funziona a causa di un errore "Iniziale valore di riferimento per un non-const deve essere un lvalue." Non sono sicuro che cosa questo significa e perché il test_factorize
esegue in un problema, in quanto l'output di factorize
è un vettore e l'ingresso di print_vector
è anche un vettore, quindi non vedo perché il contenuto di test_factorize
causare un errore, anche se ho il sospetto che potrebbe essere qualcosa all'interno di `ridurre' la funzione che ho definito che causa questo errore.
#include <iostream>
#include <vector>
using namespace std;
void print_vector(std::vector<int>& v) {
for (int i = 0; i < v.size(); i++) {
cout << v[i] << " ";
}
cout << endl;
}
std::vector<int> factorize(int n) {
std::vector<int> answer;
for (int i = 1;i < n + 1; ++i) {
if (n % i == 0) {
answer.push_back(i);
}
}
return answer;
}
void test_factorize() {
print_vector(factorize(2));
print_vector(factorize(72));
print_vector(factorize(196));
}