Sunteți pe pagina 1din 2

1. Partiţiile unui număr natural. Fie n>0, natural.

Să se scrie un program care să afişeze toate


partiţiile unui număr natural n. Numim partiţie a unui număr natural nenul n o mulţime de
numere naturale nenule {p1, p2, …, pk} care îndeplinesc condiţia p1+p2+ …+pk = n.
Exemplu: pt n = 4 programul va afişa:
4 = 1+1+1+1
4 = 1+1+2
4 = 1+3
4 = 2+2
4=4

2. Să se afişeze toate permutările unei mulţimi formate din n (n<10) numere naturale, a_1, a_2,
…, a_n (0<a_i<1000), date de la tastatură. Dacă cele n elemente nu formează mulţime (nu sunt
distincte), se va afişa mesajul EROARE. În caz contrar, se vor afişa, câte una pe linie,
permutările numerelor date, cu câte un spaţiu între elementele unei permutări.
Exemplu: n = 4 7 9 51 9 se va afişa: EROARE
n=3 5 11 2 se va afişa: 5 11 2
5 2 11
11 5 2
11 2 5
2 11 5
2 5 11

3. Un grup de n (n<=10) persoane numerotate de la 1 la n sunt aşezate pe un rând de scaune, dar


între oricare două persoane vecine s-au ivit conflicte. Scrieţi un program care afişează toate
modurile posibile de reaşezare a persoanelor, astfel încât între oricare două persoane aflate în
conflict să stea una sau cel mult două persoane.
Exemplu: n = 4 se va afişa: 3 1 4 2
2 4 1 3

4. Generarea tuturor secvenţelor de n (par) paranteze care se închid corect. Să se genereze toate
șirurile de n parateze rotunde închise corect.
Exemplu:  Pt n=4: (()) ; ()()
 Pt n=6: ((())) ; ()(()) ; ()()() ; (()()) ; (())()

5. Plata unei sume cu monede de valori date. Se citeste un numar natural n si apoi n numere
naturale ordonate strict crescator reprezentand valorile a n bancnote. Se citeste apoi o suma de
bani s si se cere sa se plateasca in toate modurile posibile suma s cu bancnote de valorile
precizate folosind cel putin o bancnota de fiecare valoare data. Se presupune ca avem la
dispozitie oricate bancnote de fiecare valoare.
Exemplu: n=4, valorile bancnotelor: 1 5 10 50 și s=100
Se vor obtine solutii de forma:
15*1 1*5 3*10 1*50
15*1 3*5 2*10 1*50
15*1 5*5 1*10 1*50
6. Fiind dată o sumă S şi n monede de valori date, să se determine toate modalitătile de plată a
sumei S cu aceste monede. Considerăm că sunt monede suficiente din fiecare tip.
Exemplu: n=4, valorile bancnotelor: 1 5 10 50 și s=100
Se vor obține soluții de forma:
2*50
5*10 1*50
10*10
2*5 4*10 1*50
...
35*1 1*5 1*10 1*50
...
95*1 1*5
100*1

7. Să se afişeze toate numerele formate din cifre distincte cu proprietatea că suma cifrelor este S.
Valoarea variabilei S se citeşte de la tastatură. Soluţiile vor fi afişate pe ecran.
Exemplu: S = 3 se va afişa: 102 12 120 201 21 210 3 30

S-ar putea să vă placă și