Rezolvare completă PbInfo #2999 submultimi_2

Pentru un număr natural n se generează submulțimile de numere naturale de forma {0} {1, 2} {3, 4, 5} {6, 7, 8, 9} ... unde ultima submulțime are n elemente.

Cerință

Scrieți un program care citește de la tastatură trei numere naturale n, k și r și afișează:

  • câte submulțimi sunt formate dintr-un număr de elemente pare(cardinalul submulțimilor este un număr par)
  • media aritmetică a elementelor din submulțimile cu număr de ordine k și r (0 < k ≤ r ≤ 100)
  • elementele submulțimii r sub forma: primul, al doilea, ultimul, al treilea, al patrulea, penultimul, etc.

Date de intrare

Programul va citi de la tastatură n, k și r numere naturale.

Date de ieșire

Se afișează fiecare pe câte o linie :

  • numărul de submulțimi cu număr de elemente pare
  • media aritmetică a numerelor din submulțimile k și r
  • elementele submulțimii r sub forma: primul, al doilea, ultimul, al treilea, al patrulea, penultimul, etc.

Restricții și precizări

  • 1 ≤ k ≤ r ≤ n ≤ 100

Exemplu

Date de intrare

10 5 7

Date de ieșire

5
19
21 22 27 23 24 26 25

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 submultimi_2:

#include <iostream>

using namespace std;
int n,k,r;
int main()
{
    cin>>n>>k>>r;
    cout<<n/2<<"\n";
    int p=((k-1)*k)/2; // primul element din submultimea k
    int u=p+k-1;  // ultimul element din submultimea k
    int p1=((r-1)*r)/2; // primul element din submultimea r
    int u1=p1+r-1;  // ultimul element din submultimea r

    cout<<(((u1+1)*u1)/2- (p1*(p1-1))/2+((u+1)*u)/2- (p*(p-1))/2)/(k+r)<<"\n";

    int i=1;
    while(i<=r)
  {
       cout<<p1<<" ";
       i++;
       if(i<=r)
            cout<<p1+1<<" ";
        i++;
        if(i<=r)
            cout<<u1<<" ";
        i++,p1=p1+2,u1--;
  }

    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 #2999 submultimi_2

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2999 submultimi_2 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!