Clasa a IX-a · Tablouri unidimensionale (vectori)Read in English

Suma elementelor de pe pozițiile pare și impare în C++

În engleză: Sum of the elements on even and odd positions

O(n)C++1744 de linii1 exemplu

Ideea

Atenție la diferența dintre poziție (indicele i) și valoare (v[i]). Paritatea se verifică aici pentru indice: v[2], v[4], ... sunt pe poziții pare. Se afișează suma pe poziții pare, apoi pe impare.

Descrierea în engleză

Mind the difference between the position (the index i) and the value (v[i]). Parity is checked here for the index: v[2], v[4], ... are on even positions. The sum on even positions is printed, then the sum on odd ones.

Complexitate
O(n)
Clasa
Clasa a IX-a (Grade 9)

Exemple

Exemplul 1

Intrare

6
5 1 8 2 7 3

Ieșire așteptată

6 20

Codul C++

Codul complet, cu comentarii în română. Îl poți modifica liber și îl poți reseta oricând.

suma-pe-pozitii-pare-si-impare.cpp
/*
 * Titlu: Suma elementelor de pe pozițiile pare și impare
 * Clasa: 9
 * Capitol: Tablouri unidimensionale (vectori)
 * Descriere: Atenție la diferența dintre poziție (indicele i) și valoare (v[i]).
 *            Paritatea se verifică aici pentru indice: v[2], v[4], ... sunt pe
 *            poziții pare. Se afișează suma pe poziții pare, apoi pe impare.
 * Complexitate: O(n)
 *
 * Exemplu
 * Intrare:
 * 6
 * 5 1 8 2 7 3
 * Ieșire: 6 20
 */
#include <iostream>
using namespace std;

int v[1001];

int main()
{
    int n;
    long long sumaPare = 0, sumaImpare = 0;
    cin >> n;
    for (int i = 1; i <= n; i++)
    {
        cin >> v[i];
    }
    for (int i = 1; i <= n; i++)
    {
        if (i % 2 == 0)
        {
            sumaPare = sumaPare + v[i];
        }
        else
        {
            sumaImpare = sumaImpare + v[i];
        }
    }
    cout << sumaPare << ' ' << sumaImpare << '\n';
    return 0;
}

Rulează pe un g++ adevărat (C++17, -O2) prin Compiler Explorer. Programele trebuie să se termine repede: există o limită de timp.