fbpx

Problema #2811 – Triplete – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Subprogramul triplete are trei parametri, a, b și c, în această ordine, prin care primește câte un număr natural din intervalul [0,104] (a<b). Subprogramul afișează pe ecran în ordine lexicografică toate tripletele de numere naturale, x, y și z, soluții ale ecuației x+y+z=c, cu proprietatea că a≤ x≤ y≤ z≤ b.

Fiecare triplet afișat pe câte o linie și este încadrat între acolade, iar numerele x, y și z sunt afișate în această ordine, separate prin câte o virgulă. Dacă nu există niciun triplet cu proprietatea cerută, se afişează mesajul nu exista.

Scrieți definiția completă a subprogramului.

Exemplu

Dacă a=2, b=4 și c=8, se afișează pe ecran tripletele:

{2,2,4}
{2,3,3}

Dacă a=5, b=8, c=8 se afișează pe ecran mesajul nu exista.

Important

Soluția propusă va conține definiția subprogramului cerut. Prezența în soluție a altor instrucțiuni poate duce erori de compilare sau de execuție care vor avea ca efect depunctarea soluției.

void triplete(int a , int b , int c)
{
    int cnt = 0;
    for(int i = a ; i <= b ; ++i)
        for(int j = i ; j <= b ; ++j)
                if(c - (i + j) >= j && c - (i + j) <= b)
                    cout << '{' << i << ',' << j << ',' << c - (i + j) << '}' << endl, cnt++;
    if(cnt==0)
        cout << "nu exista";
}
Comentarii

S-ar putea sa iti placa