online: 4; azi: 943; total: 51398 Manual clasa a ix a - Implementarea algoritmilor - Instructiuni de control

Probleme Rezolvate



Manual clasa a IX a

Implementarea algoritmilor

Instructiuni de control

Se consideră numărul n=2a 2 +3b 3 , a şi b fiind două numere naturale distincte cu 1<=a<=10 şi 1<=b<=10. Să se afişeze toate numerele n generate astfel , şi , pentru fiecare număr n generat , descompunerea lui în sumă de trei pătrate .
# include < iostream >
# include < cmath >
using namespace std ;
int main () {
for ( int a = 1 ; a <= 10 ; a++) {
for ( int b = 1 ; b <= 10 ; b++) {
if (a != b) { // Verificăm că a și b sunt distincte
int n = 2 * a * a + 3 * b * b * b;
cout << "n = " << n << endl ;
bool found = false ;
for ( int i = 1 ; i * i <= n; i++) {
for ( int j = i; j * j <= n; j++) {
for ( int k = j; k * k <= n; k++) {
if (i * i + j * j + k * k == n) {
found = true ;
cout << i << "^2 + " << j << "^2 + " << k << "^2" << endl ;
}
}
}
}
if (! found ) {
cout << "Nu exista solutii ." << endl ;
}
cout << endl ;
}
}
}
return 0 ;
}

Pentru a genera toate numerele n posibile, vom folosi două structuri repetitive for îmbăinate , care vor itera prin toate combinațiile posibile de a și b, și vor calcula corespunzător valoarea lui n. Pentru a verifica dacă două numere a și b sunt distincte, vom folosi o instrucțiune if .
Pentru fiecare număr generat, vom căuta toate posibilele combinații de trei pătrate ale căror sumă este egală cu acel număr, folosind o altă structură repetitivă for. Vom itera prin toate valorile posibile pentru cele trei pătrate și vom verifica dacă suma lor este egală cu numărul n. Pentru a verifica dacă o valoare este un pătrat perfect, vom folosi funcția sqrt din biblioteca standard a limbajului C++.
Programul începe prin a itera prin toate valorile posibile pentru a și b, cu condiția ca acestea să fie distincte. Pentru fiecare combinație de a și b, se calculează valoarea lui n, conform formulei din enunț.
Apoi, se iterează prin toate posibilele combinații de trei pătrate care au suma egală cu n. Se verifica pentru fiecare tripletă de pătrate dacă suma lor este egală cu n. Dacă se găsește o astfel de combinație, se afișează aceasta. Dacă nu se găsesc astfel de combinații, se afișează un mesaj corespunzător.
În final, se afișează un spațiu liber între fiecare set de soluții pentru o mai bună vizualizare a rezultatelor.