Informatică, întrebare adresată de stefisubrirel, 8 ani în urmă

scrieți un cod în limbajul C++ care calculeaza suma numerelor impare din intervalul [1..N], N este citit de la tastatura. Va rog mult​

Răspunsuri la întrebare

Răspuns de Sergetec
1

Salut!

Am sa iti las mai jos 2 modalitati de rezolvare

I. Metoda matematica (eficienta)

#include <iostream>

using namespace std;

int main()

{

 int n;

 cin >> n;

 if (n % 2 != 0)

 {

   n = n/2 + 1;

 }

 else

 {

   n = n / 2;

 }

 cout << n * n;

 return 0;

}

  • Explicatie:

1+3+5+...+(2n-1) = n x n

De aici se deduc cele 2 conditii de paritate ale lui n

II. Metoda bruta (calculam suma nr impare de la 1 la n cu un for)

#include <iostream>

using namespace std;

int main()

{

 int n, s = 0;

 cin >> n;

 for (int i = 1; i <= n; i += 2)

 {

   s += i;

 }

 cout << s;

 return 0;

}

  • Eplicatie:

Incepem cu un for de la 1 pana la n si incrementam i ul cu cate 2 (pentru a merge doar in numerele impare)

Alte întrebări interesante