Sunteți pe pagina 1din 3

Utilizarea vectorului frecven(vector de contorizare)

1. Se citesc dou numere naturale n i m. S se afieze numrul de cifre distincte comune ambelor
numere. Exemplu: n=122347, m=5432332, pe ecran se va afia valoarea 4.

2. Se d un numr natural n ntre 1 i dou miliarde. S se afieze cel mai mare numr care se
poate forma cu cifrele sale. Exemplu: n=53123298, se va afia pe ecran 98533221.

3. Se d un numr natural n ntre 1 i dou miliarde. S se afieze cel mai mic numr care se poate
forma cu cifrele sale. Exemplu: n=53103298, se va afia pe ecran 10233589.

4. Fiierul text numere.txt conine pe prima linie un numr natural n (0<n<100000), iar pe a
doua linie, separate prin cte un spaiu, n numere naturale formate din cel mult 2 cifre.
Scriei un program C++ care determin n mod eficient, din punct de vedere al timpului de
executare, toate numerele coninute de a doua linie a fiierului care apar de cel puin dou ori n
acest linie. Programul va afia pe ecran numerele determinate, o singur dat, n ordine
crescatoare, pe aceeai linie, separate prin cte un spaiu.
Exemplu: dac fiierul numere.txt are urmtorul coninut:
54 74 2 44 9 2
atunci pe ecran se va afia: 2 44

5. Fiierul text numere.txt conine pe prima linie un numr natural n (0<n<100000), iar pe a doua
linie, separate prin cte un spaiu, n numere naturale formate din cel mult 2 cifre. Scriei un
program C++ care afieaz pe ecran, n mod eficient din punct de vedere al timpului de executare,
toate numerele situate pe a doua linie a fiierului, n ordinea cresctoare a valorilor lor, separate
prin cte un spaiu. Dac un numr apare n fiier de mai multe ori el va fi afiat o singur dat.
Exemplu: dac fiierul numere.txt are urmtorul coninut:
7
12 21 22 11 9 12 3
atunci pe ecran se va afia: 3 9 11 12 21 22

6. Fiierul text bac.in conine pe prima linie un numr natural n (0<n<5000), iar pe a doua linie,
separate prin cte un spaiu, n numere naturale, formate din cel mult 4 cifre fiecare. Scriei un
program C++ care determin i scrie n fiierul bac.out toate numerele coninute de a doua linie
a fiierului care apar o singur dat n aceast linie. Numerele determinate se vor afia n ordinea
cresctoare a valorilor lor, separate prin cte un spaiu.
Exemplu: dac pe prima linie a fiierului bac.in se afl 10, iar pe linia a doua se gsesc numerele
2 4548 568 4548 57 89 5974 2 89 32 atunci valorile cutate sunt 32 57 568 5974.

7. Fiierul bac.in conine pe prima linie un numr natural n (0<n<5000), iar pe a doua linie, separate
prin cte un spaiu, n numere naturale, formate din cel mult 4 cifre fiecare. Scriei un program
C++ care determin i scrie n fiierul bac.out, toate numerele, citite de pe a doua linie a fiierului
bac.in, care apar de cel puin dou ori. Numerele determinate se vor scrie n ordine cresctoare,
pe aceeai linie, separate prin cte un spaiu.
Exemplu: dac fiierul bac.in conine pe prima linie numrul 11, iar pe linia a doua valorile 23
12 54 12 78 345 67 23 78 934 23 atunci fiierul bac.out va conine: 12 23 78

8. Se citete de pe prima linie a fiierului text numere.in un numr natural n (0<n<10000) i, de pe


a doua linie a fiierului, n numere naturale din intervalul [1,100] i se cere s se afieze pe ecran,
desprite prin cte un spaiu, numrul sau numerele ntregi din intervalul [1,100] care nu apar
printre numerele citite. Dac pe a doua linie a fiierului apar toate numerele din intervalul precizat,
se va afia mesajul NU LIPSESTE NICIUN NUMAR. Alegei un algoritm de rezolvare eficient din
punctul de vedere al timpului de executare.
Exemplu: pentru fiierul numere.in cu urmtorul coninut
12
4 2 3 1 6 5 7 8 9 11 10 100 se vor afia valorile 12 13 99.
9. Fiierul text NUMERE.IN conine, pe mai multe linii, cel mult 30000 de numere naturale nenule
mai mici sau egale dect 500, desprite prin cte un spaiu.Scriei programul C++ care afieaz
pe ecran, n ordine cresctoare, toate numerele care au aprut exact o singur dat n fiierul
NUMERE.IN, desprite prin cte un spaiu.
Exemplu: dac fiierul NUMERE.IN conine numerele scrise mai jos,
2 23 34 3
8 9 9 23 6 8 9 2 4 5 23 9
se vor afia valorile urmtoare: 3 4 5 6 34 .

10. Fiierul text NR.TXT conine pe o singur linie, separate prin cte un spaiu, cel mult 10000 de
numere naturale, fiecare numr avnd cel mult 4 cifre. Scriei un program C++, eficient din punct
de vedere al spaiului de memorie utilizat, care citete numerele din fiierul NR:TXT i afieaz
pe ecran, separate prin cte un spaiu, n ordine descresctoare, toate numerele din fiier care
sunt prime i au cel mult 2 cifre. Dac fiierul nu conine astfel de numere se va afia pe ecran
mesajul NU EXISTA.
Exemplu: dac fiierul NR.TXT are urmtorul coninut 2378, 9, 7, 23, 35, 47, 11, 81, 131, 71,
100, 2, 18, 1334, 333, 29 se va afia 71, 47, 29, 23, 11, 7, 2.

11. Fiierul bac.txt conine pe prima linie un numr natural, n, iar pe a doua linie cel mult 1000000
de numere naturale de forma 2p (0p9), separate prin cte un spaiu. Se cere s se afieze pe
ecran numrul care ar aprea pe poziia n n irul ordonat descresctor obinut din toate numerele
aflate pe a doua linie a fiierului. Dac irul are mai puin de n termeni, se afieaz pe ecran
mesajul Nu exista. Pentru determinarea numrului cerut se utilizeaz un algoritm eficient din
punctul de vedere al timpului de executare.
Exemplu: dac fisierul bac.txt conine numerele
5
16 32 1 64 128 32 128 32
atunci pe ecran se afieaz valoarea
32

12. Fiierul text bac.in conine separate prin cte un spaiu numere naturale, formate din cel mult 4
cifre fiecare. Scriei un program C++ care determin i scrie n fiierul bac.out toate cifrele de
control care nu apar printre numerele coninute de a doua linie a fiierului. Cifra de control a unui
numr ntreg se obine calculnd suma cifrelor sale, apoi suma cifrelor acestei sume, etc pn
cnd se obine o sum format dintr-o singur cifr.
Exemplu: dac pe prima linie a fiierului bac.in se afl numerele 2 173 568 4548 57 89 5974 2
3 32 atunci valorile afiate sunt 0 4 6 9.

13. Fiierul bac.txt conine pe prima linie un numr natural n (1n106), iar pe a doua linie cel mult
1000000 de numere naturale de forma 10p (0p9), separate prin cte un spaiu. Se cere s se
afieze pe ecran numrul care ar aprea pe poziia n n irul ordonat cresctor obinut din toate
numerele aflate pe a doua linie a fiierului. Dac irul are mai puin de n termeni, se afieaz pe
ecran mesajul Nu exista. Pentru determinarea numrului cerut se utilizeaz un algoritm eficient
din punctul de vedere al timpului de executare. Exemplu: dac fiierul bac.txt conine numerele
5
100 100000 1 100000 1000 100 10 atunci pe ecran se afieaz valoarea 1000.

14. Un numr natural x, format din exact dou cifre, este numit sub-numr al unui numr natural y
dac cifrele lui x apar, n aceeai ordine, pe ranguri consecutive, n numrul y. Exemplu: 21 este
sub-numr al lui 12145, al lui 213, al lui 21, dar nu i al lui 123 sau al lui 231. Fiierul bac.txt
conine cel mult 106 numere naturale din intervalul [10, 109], separate prin cte un spaiu. Se
cere s se afieze pe ecran, separate prin cte un spaiu, n ordine cresctoare, sub-numerele
care apar o singur dat n scrierea numerelor din fiier, sau mesajul nu exista dac nu exist
niciun astfel de sub-numr. Proiectai un algoritm eficient din punctul de vedere al timpului de
executare. Exemplu: dac fiierul bac.txt conine numerele 391 7772 4358 23972, atunci pe
ecran se afieaz valorile: 23 35 43 58 91 97.
15. Fiierul bac.in conine pe prima linie cel mult 1.000.000 de numere naturale nenule mai mici
strict dect 100, separate prin cte un spaiu. Scriei un program care, utiliznd un algoritm
eficient din punct de vedere al timpului de executare determin i afieaz pe ecran cel mai mic
numr x care verific urmtoarele condiii:
x nu apare n fiier
exist un numr y n fiier astfel nct x+y=100.
Dac nu exist nici un asemenea numr, se afieaz pe ecran mesajul NU EXIST.
Exemplu: dac fiierul bac.in are coninutul 56 12 1 97 2 98 9 91 3 43 97 89 6
atunci se afieaz 11.

16. Fiierul numere.in conine un ir s de cel mult 1.000.000 de numere din mulimea {1, 2, 3, 4, 5}.
Scriei un program care, determin i afieaz pe ecran n ordinea descresctoare a numrului
de apariii, pe fiecare linie, numrul i numrul de apariii a acestuia.
Exemplu:dac fiierul numere.in conine numerele: 2 3 4 5 3 3 2 3 3 4 4 4 3 3 3 5 1 1 1 1 1 1 2 2
2 atunci, pe ecran se va afia:
3 8
1 6
2 5
4 4
5 2

17. Se citete din fiierul bac.txt un numr natural n, n<=30000, aflat pe prima linie a fiierului i apoi
n cifre separate prin cte un spaiu, aflate pe a doua linie a fiierului. Se cere s se afieze pe
ecran cifrele care apar n fiier, n ordine descresctoare, fiecare cifr fiind urmat de attea
caractere * cte apariii are cifra respectiv n irul dat.
Exemplu: dac fiierul bac.txt are urmtorul coninut:
18
2 3 3 0 9 1 2 1 3 7 1 5 2 7 1 0 3 2
pe ecran se va afia, 9*7**5*3****2****1****0**

18. Fiierul bac.in conine cel mult 1000000 de numere ntregi de maxim patru cifre. Scriei un
program care afieaz de cte ori apare fiecare numr de dou cifre n acest fiier. Numerele vor
fi afiate n ordine descresctoare a valorii. Afiarea numrului de dou cifre i a numrului de
apariii ale acestuia se va face pe cte o linie. Cele doua valori de pe linie vor fi separate de un
spaiu.
Exemplu: bac.in conine numerele: 3 123 24 45 126 24 88 345 37 45 45 678 33
se va afia:

24 2
33 1
37 1
45 3
88 1

19. Fiierul de intrare date.in conine un ir cu cel mult un milion de numere naturale cu maximum nou
cifre fiecare, separate prin cte un spaiu. Scriei un program care, utiliznd un algoritm eficient din
punct de vedere al al timpului de executare i al spaiului de memorie utilizat, citete din fiier toi
termenii irului, determin i afieaz n fiierul date.out, numrul termenilor care ncep i se termin
cu cifra 1, apoi numrul termenilor care ncep i se termin cu cifra 2,..., numrul termenilor care ncep
i se termin cu cifra 9. Cele nou numere determinate se vor afia pe prima linie a fiierului, separate
prin cte un spaiu.
Exemplu: Dac fiierul date.in are coninutul:
13
2842 121 9839 94 9 223 22 1 66 454 43 33 383,
fiierul date.out va avea coninutul: 2 2 2 1 0 1 0 0 2 deoarece sunt doi termeni care ncep i se termin
cu 1 (121, 1), 2 termeni care ncep i se termin cu 2(2842,22), etc.

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