online: 9; azi: 76; total: 52082 Manual clasa a ix a - Implementarea algoritmilor - Instructiuni de control

Probleme Rezolvate



Manual clasa a IX a

Implementarea algoritmilor

Instructiuni de control

Să se determine toate cvadruplele de numere naturale ( x ,y,z,n ) care îndeplinese simultan condiţiile : n>=3, 1<=x<=y<=z<=m şi x n +y n = z n unde m se citeşte de la tastatură .
# include < iostream >
using namespace std ;
int main () {
int m;
cout << " Introduceti valoarea lui m: " ;
cin >> m;
for ( int n = 3 ; n <= m; n++) {
for ( int x = 1 ; x <= m; x++) {
for ( int y = x; y <= m && y >= n; y++) {
for ( int z = y; z <= m; z++) {
if (x * x + y * y == z * z) {
cout << "(" << x << "," << y << "," << z << "," << n << ")" << endl ;
}
}
}
}
}
return 0 ;
}

Pentru a găsi toate cvadruplele de numere naturale (x, y, z, n) care îndeplinesc condițiile date, putem folosi patru bucle for îmbricate . Prima buclă for va itera prin toate valorile posibile pentru x, a doua buclă for va itera prin toate valorile posibile pentru y (începând de la x pentru a evita dublarea triplurilor ), a treia buclă for va itera prin toate valorile posibile pentru z (începând de la y pentru a evita dublarea triplurilor ), iar a patra buclă for va itera prin toate valorile posibile pentru n (începând de la 3 pentru a îndeplini condiția n>=3).
În fiecare iterație a buclei interioare, verificăm dacă xn + yn este egal cu zn . Dacă condiția este îndeplinită, afișăm cvadrupla (x, y, z, n).
Pentru a evita dublarea cvadruplurilor , putem pune o condiție suplimentară în bucla for a doua, care verifică dacă y este mai mare sau egal cu n.