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

PLssss
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ă

Un sir v este mai mic lexicografic decât un șir w ambele având n elemente dacă ∃i≤n astfel încât v1..i−1=w1..i−1 și viPentru 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

Am incercat asta :
#include
using namespace std;
int n;
void afisareSolutii(int c)
{
int x,y,z;
for (x=0; x =y)
cout << x << " " << y << " " << z << endl;
}
}
}
int main()
{
cin >> n;
afisareSolutii(n);
}
Dar cand ii dau submit imi da ca depeseste limita de timp.

Răspunsuri la întrebare

Răspuns de iulianpreasca
1

Răspuns:

#include <bits/stdc++.h>

using namespace std;

void afisareSolutii(int c) {

   for(int i = 0; i<c; i++) {

       for(int j = 0; j<c; j++) {

           for(int m = 0; m<=c; m++) {

               if((i + j + m) == c && (i <= j && j<=m)) cout<<i<<" "<<j<<" "<<m<<endl;

           }

       }

   }

}

int main() {

   afisareSolutii(5);

   

   return 0;

}

Explicație:


bbaba14573: multumesc dar tot imi spune ca limita timp depasita
Alte întrebări interesante