Informatică, întrebare adresată de Incognito, 9 ani în urmă

Fie un vector x de dimensiune n de numere reale. Sa se tipareasca toate submultimile de doua elemente formate cu elementele vectorului x. Program in c++ va rog.

Răspunsuri la întrebare

Răspuns de AntiEaglesDavids
4
#include <iostream>
using namespace std;

const int NMAX = 1000;

int aux[NMAX], x[NMAX], n, nr;

void afis()
{
    nr++;
    for(int i=1; i<=2; i++) cout << x[i] << ' ';
    cout << '\n';
}

void bkt(int k)
{
    for(int i=1; i<=n; i++) {
        x[k] = aux[i];
        if(x[k-1] < x[k] || k == 1) {
            if(k == 2) afis();
            else bkt(k+1);
        }
    }
}

int main()
{
    cin >> n;
    for(int i=1; i<=n; i++) cin >> aux[i];
    bkt(1);
    cout << "Nr de submultimi este: " << nr << '\n';
    return 0;
}


Incognito: vreau doar sa stiu
AntiEaglesDavids: ai facut recursivitate?
AntiEaglesDavids: la info?
Incognito: parca am facut ceva....
AntiEaglesDavids: ok deci daca vrei sa stii backtracking (adica sa rezolvi probleme de genu asta cu permutari, aranjamente si nu numai) trebuie sa stii niste notiuni din clasele precedente altfel, crede-ma, e IMPOSIBIL. Ia-le in ordine: subprograme (adica functii), recursivitate, elemente de combinatorica(doar formule si poate si probleme). Apoi, dupa ce ai invatat si ai facut probleme din astea 3 (in ordinea in care le-am scris) uita-te aici: http://info.tm.edu.ro:8080/~asimulescu/public/clasa11D/Backtracking_1.
AntiEaglesDavids: Apoi treci si faci probleme cu backtracking
AntiEaglesDavids: site-uri sunt multe de unde poti face probleme din categoriile pe care le-am scris mai sus si sincer nu prea conteaza care alegi (inafara de pbinfo, sa nu intrii pe site-ul ala). Conteaza doar sa te tii si sa faci probleme si evidetn sa le intelegi cat mai bine TREPTAT
Incognito: ok mersi
AntiEaglesDavids: sfatul nr 1: incearca sa inveti treptat de tot
AntiEaglesDavids: npc
Alte întrebări interesante