1. Să se calculeze: S=1+3+5+...+nr, a) unde nr este un număr impar mai mic sau cel mult egal cu n, n număr natural nenul dat
Răspunsuri la întrebare
Răspuns de
3
► Varianta simpla, ciclu repetitiv
#include <iostream>
using namespace std;
int main() {
int n, suma=0;
cout << "Numar : ";
cin >> n;
for (int i = 1; i <= n; i += 2)
suma += i;
cout << "Suma este " << suma;
}
► Varianta eficienta, matematica
S=(1+2+3+...+nr) - (2+4+.....+nr-1)
S=(1+2+3+....+nr) - 2(1+2+...+(nr-1)/2)
◘ Stiind formula pentru suma gauss 1+2+...+x = x(x+1)/2 ajungem la
S = nr*(nr+1)/2 - (nr-1)/2*((nr-1)/2)+1)
#include <iostream>
using namespace std;
int main() {
int n, suma, nr;
cout << "Numar : ";
cin >> n;
if (n % 2 == 0) nr = n - 1;
else nr = n;
suma = nr * (nr + 1) / 2 - (nr - 1) / 2 * ((nr - 1) / 2 + 1);
cout << "Suma este " << suma;
}
Alte întrebări interesante
Informatică,
8 ani în urmă
Chimie,
8 ani în urmă
Ed. tehnologică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Engleza,
9 ani în urmă
Limba română,
9 ani în urmă