👤

Utilizând metoda backtracking, sunt generate în ordine crescătoare toate numerele de 3 cifre, astfel încât cifrele sunt în ordine crescătoare, iar cifrele aflate pe poziţii consecutive sunt de paritate diferită. Ştiind că primele trei soluţii generate sunt, în această ordine, 123, 125, 127, scrieţi în ordine crescătoare, separate prin câte un spațiu toate numerele generate care au suma cifrelor egală cu 12.

Răspuns :

Solutie : 129 147 345

Program C++ Backtracking  :

#include <iostream>

using namespace std;

int solutie[3];

void bkt(int lvl) {

//Daca e solutie afiseaza

if (lvl == 3 && solutie[0] + solutie[1] + solutie[2] == 12) cout << solutie[0] << solutie[1] << solutie[2] << " ";

//Altfel construieste cifra noua

else {

 //Daca e prima pozitie

 if (lvl == 0) {

  for (solutie[0] = 1; solutie[0] <= 9; solutie[0]++) bkt(1);

 }

 //Altfel

 else {

  for (solutie[lvl] = solutie[lvl - 1] + 1; solutie[lvl] <= 9; solutie[lvl] += 2) bkt(lvl + 1);

 }

}

}

int main() {

bkt(0);

}

Vă mulțumim că ați vizitat platforma noastră dedicată Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, vă rugăm să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la lista de favorite!


Ze Learners: Alte intrebari