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

Să se scrie o funcție numită afisareSolutii care primește un număr întreg c și afișează pe ecran toate soluțiile ecuației

x+y+z=c cu proprietatea că x≤y≤z și 0≤x,y,z.

Semnătură funcție

Funcția trebuie să se numească afisareSolutii.

Funcția trebuie să primească un parametru întreg.

Funcția nu va returna nimic, doar va afișa pe ecran soluțiile cerute.

Precizări

Fiecare soluție va fi afișată o singură dată, iar soluțiile vor fi afișate în ordine lexicografică

Un sir veste mai mic lexicografic decât un șir wambele având N elemente dacă ∃i≤N astfel încât v1..i−1=w1..i−1 și vi
Pentru a compara soluțiile, putem să ne gândim că fiecare dintre soluții este un șir cu 3 elemente

Fiecare soluție va fi afișată pe o linie separată.

Restricții

Numărul dat va fi mai mare decât 0 și mai mic decât 501.

Exemplu

afisareSolutii(3) nu va returna nimic și va afișa


0 0 3

0 1 2

1 1 1

Răspunsuri la întrebare

Răspuns de boiustef
6

#include <iostream>

using namespace std;

int n;

void afisareSolutii(int c)

{

   int x,y,z;

   for (x=0; x<c; ++x)

   {

       for (y=x; y<c; ++y)

       {

           z=c-x-y;

           if (z>=y)

               cout << x << " " << y << " " << z << endl;

       }

   }

}

int main()

{

   cout << "n= "; cin >> n;

   afisareSolutii(n);

}


vladphantom: ms
vladphantom: am modificat-o putin si acm merge
boiustef: ce modificări ???
vladphantom: Pai, am transformat-o in C, am uitat sa precizez c aimi trebuia in C si am sters int main-ul pt ca imi trebuia doar functia
boiustef: ok... oricum nu ştiu C :)))
vladphantom: a ok :))
boiustef: eu de la pascal am trecut la C++
Alte întrebări interesante