Partendo con le seguenti variabili:
A cicli alternicodice:somma = 0 p = 0 a
ecodice:somma = somma + p * a p = a
codice:p = p * a
Partendo con le seguenti variabili:
A cicli alternicodice:somma = 0 p = 0 a
ecodice:somma = somma + p * a p = a
codice:p = p * a
"Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares
esatto, ho fatto cosi. Non ho capito come impostare i cicli alterni però.
Cioè se a i=3 arrivo cosi
poi come faccio a dirgli a i=5, i=7, i=9... di farefor(int i=1;i<=n;i++)
{
cout<<"inserisci numero di questi n numeri"<<endl;
cin>>a;
p=p*a;
if(i==3)
{
somma=somma+c;
c=a;
}
}
cout<<"somma risulta "<<somma<<endl;
somma=somma+p*a
5 non è un ,multiplo di 3. Dovrei impostare un altro for che da i=5 fino a i=7 fa la somma, e poi da i=7 a i=9. OK.
Ma coma faccio a passare da i=3 a I=5?
Devo introdurre un'altra variabile k=2?
Ti basta controllare se l'indice è pari o disparicodice:#include <iostream> using namespace std; int main() { int a, sum = 0, p = 0, n; cout << "Quanti numeri vuoi sommare?"; cin >> n; for(int i = 0; i < n; ++i) { cin >> a; if(i % 2 == 0) { sum += p * a; p = a; } else { p *= a; } } cout << "Il risultato è " << sum << endl; return 0; }
"Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares
Non ho capito alcune cose è cioè:
1. parti da int i=0. quando c'è i=1 il resto vale esattamente 0? in teoria no, o forse si perchè i è variabile intera?
2. non dovrei valutare i%3==0, dovendoi fare la moltiplicazione di 3 numeri?
ciao e grazie
Il resto vale: 0 1 0 1 0 1 0 1 0 1 0 1 ...
1 2 3
_ _ 3 4 5
_ _ _ _ 5 6 7
_ _ _ _ _ _ 7 8 9
E' vero che devi sommare 3 numeri, ma come vedi dallo schema sopra devi "partire con una moltiplicazione" ogni altro ciclo!
"Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares