Rezolvare completă PbInfo #2858 pv

Se consideră un șir a1, a2, …, an de numere naturale.

Cerințe

  • Să se afișeze elementele șirului de la dreapta la stânga.
  • Să se calculeze suma valorilor pare din șir.
  • Să se determine suma valorilor aflate pe poziții pare în șir.
  • Să se determine numărul numerelor din șir care sunt divizibile cu 10.
  • Să se determine suma numerelor divizibile cu 3 și aflate pe poziții impare.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi șirul de n numere naturale, separate prin spații.

Date de ieșire

Programul va afișa pe ecran pe prima linie elementele șirului de la dreapta la stânga. Pe linia a doua se va afișa un singur număr reprezentând suma valorilor pare. Pe linia a treia se va afișa un singur număr reprezentând suma valorilor aflate pe poziții pare în șir. Pe linia a patra se va afișa un singur număr reprezentând numărul numerelor din șir care sunt divizibile cu 10. Pe linia a cincea se va afișa un singur număr reprezentând suma numerelor divizibile cu 3 și aflate pe poziții impare.

Restricții și precizări

  • 1 ≤ n ≤ 100
  • 0 ≤ ai ≤ 100, pentru orice i=1..n.

Exemplu

Intrare

10
1 2 3 4 5 6 7 8 9 10

Ieșire

10 9 8 7 6 5 4 3 2 1 
30
30
1
12

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema pv:

#include <iostream>
using namespace std;

int a[105], n;

int main()
{
    int i, s;

    /// citire
    cin >> n;
    for (i = 1; i <= n; i++)
        cin >> a[i];

    /// 1. afisarea de la dreapta la stanga:
    for (i = n; i >= 1; i--)
        cout << a[i] << " ";
    cout << "\n";

    /// 2. Suma valorilor pare
    s = 0;
    for (i = 1; i <= n; i++)
        if (a[i] % 2 == 0) s += a[i];
    cout << s << "\n";

    /// 3. suma valorilor aflate pe pozitii pare:
    s = 0;
    for (i = 2; i <= n; i += 2)
        s += a[i];
    cout << s << "\n";

    /// 4. numarul numerelor divizibile cu 10
    s = 0;
    for (i = 1; i <= n; i++)
        if (a[i] % 10 == 0) s++;
    cout << s << "\n";

    /// 5. suma numerelor divizibile cu 3 si aflate pe pozitii impare
    s = 0;
    for (i = 1; i <= n; i += 2)
        if (a[i] % 3 == 0) s += a[i];
    cout << s << "\n";
    return 0;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #2858 pv

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2858 pv de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!