ok, grazie anche io pensavo di agire in quella direzione.
Ma come posso dire al secondo accumulatore che deve partire da a2 e non da a1? Il problema è che il prodotto a2*a3 non viene effettuato nel primo caso e quindi non posso impostare un for con i=2.
Forse devo considerare tre variabili a b c ?
usi 3 variabili:
somma = 0
p1 = 0
p2 = 0
più una variabile a che contiene il nuovo numero.
ad ogni ciclo:
somma = somma + p1 * a
p1 = p2 * a
p2 = a
in questo modo nei primi 2 cicli verrà sommato 0 e in seguito i vari prodotti parziali
"Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares
grazie, finalmente ce l'ho fatta, ecco il ciclo funzionante
Nel caso invece debba fare somma=(a1*a2*a3)+(a3*a4*a5) come posso fare? Non posso usare la soluzione di prima, ho provato a introdurre un terzo accumulatore ma non è corretto perchè farebbe il prodotto di 4 numeri . Se uso un accumulatore solo neanche va bene.
#include<iostream>
using namespace std;
int main ()
{
cout<<"quanti numeri metti ";
int n;
cin>>n;
int a;
int prodotto1=0;
int prodotto2=0;
int somma=0;
for(int i=1;i<=n;i++)
{
cout<<"inserisci numero di questi n numeri"<<endl;
cin>>a;
somma=somma+prodotto1*a;
prodotto1=prodotto2*a;
prodotto2=a;
}
cout<<"somma risulta "<<somma<<endl;
system("pause");
return 0;
}
sto provando a risolvere in questo modo: da i=1 a i=3 fai la somma classica a1*a2*a3 utilizzando somma=somma+prodotto*a e l'accumulatore prodotto=prodotto*a. Poi alla fine di questo ciclo con i=3 pongo a=3. Ora dovrei dire a C di fare la stessa cosa però non con i=6 ma con i=5 cioè facendo 2 iterazioni. Il mio problema è che dovrei fare: i=3, i=3+2=5, i=5+2=7....e qui mi sono bloccato. Dovrei fare forse due cicli for annidati?