Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- ifstream fin("numere.txt");
- /*
- 12. Fișierul numere.txt conține cel mult 10 5 numere naturale din intervalul [1,10 9 ], câte unul pe fiecare linie. Se cere să
- se afișeze pe ecran cel mai mare număr care se poate forma cu toate cifrele care apar în numerele din fișier, ca în
- exemplu. Proiectați un algoritm eficient din punctul de vedere al timpului de executare.
- Exemplu: dacă fișierul are conținutul 263 39628 79 887308
- se afișează 9988887766333220
- a. Descrieți în limbaj natural algoritmul proiectat, justificând eficiența acestuia. (2p.)
- b. Scrieți programul C/C++ corespunzător algoritmului proiectat.(8p)
- */
- int main()
- {
- int i = 1, j, v[100001], ok, aux, x;
- while (!fin.eof())
- {
- fin >> x;
- while (x != 0)
- {
- v[i] = x % 10;
- i++;
- x /= 10;
- }
- }
- do
- {
- ok = 1;
- for (j = 1; j <= i - 1; j++)
- {
- if (v[j] > v[j + 1])
- {
- aux = v[j];
- v[j] = v[j + 1];
- v[j + 1] = aux;
- ok = 0;
- }
- }
- } while (ok == 0);
- for (j = i; j >= 2; j--)
- cout << v[j];
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement