Să se scrie o funcție numită afisareSolutii care primește un număr întreg c și afișează pe ecran toate soluțiile întregi ale 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ă
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
Eu am un exemplu care merge, dar mi se spune ca depășește limita de timp. Mă poate ajuta cineva cu o optimizare?
void afisareSolutii(int c) {
for (int x = 0; x <= c; ++x) {
for (int y = x; y <= c; ++y) {
int z = c - x - y;
if (z >= y) {
cout << x << " " << y << " " << z << endl;
}
}
}
}
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Nu ezitați să ne contactați pentru orice întrebare sau dacă aveți nevoie de asistență suplimentară. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!