Clasa a IX-a · Fișiere textRead in English
Numărarea valorilor dintr-un fișier în C++
În engleză: Counting the values in a file
Ideea
Fișierul date.in conține pe prima linie un număr natural k, iar pe următoarele linii un șir de numere naturale de lungime necunoscută. Citim până la sfârșitul fișierului și numărăm câte valori sunt în total, câte sunt divizibile cu k și care este cea mai mare dintre ele. Rezultatele se scriu în date.out, pe un rând.
Descrierea în engleză
The file date.in contains a natural number k on the first line, and on the following lines a sequence of natural numbers of unknown length. We read until the end of the file and count how many values there are in total, how many are divisible by k and which one is the largest. The results are written to date.out, on one line.
- Complexitate
- O(n)
- Clasa
- Clasa a IX-a (Grade 9)
- Capitol
- Fișiere text
Exemple
Intrare (date.in)
3 9 4 12 7 30 5 6
Ieșire așteptată (date.out)
7 4 30
Codul C++
Codul complet, cu comentarii în română. Îl poți modifica liber și îl poți reseta oricând.
/*
* Titlu: Numărarea valorilor dintr-un fișier
* Clasa: 9
* Capitol: Fișiere text
* Descriere: Fișierul date.in conține pe prima linie un număr natural k, iar pe
* următoarele linii un șir de numere naturale de lungime necunoscută.
* Citim până la sfârșitul fișierului și numărăm câte valori sunt în
* total, câte sunt divizibile cu k și care este cea mai mare dintre ele.
* Rezultatele se scriu în date.out, pe un rând.
* Complexitate: O(n)
*
* Exemplu
* Intrare:
* 3
* 9 4 12 7
* 30 5 6
* Ieșire: 7 4 30
*/
#include <fstream>
using namespace std;
int main()
{
ifstream fin("date.in");
ofstream fout("date.out");
long long k, x, maxim = -1;
int total = 0, divizibile = 0;
fin >> k;
while (fin >> x)
{
total++;
if (x % k == 0)
{
divizibile++;
}
if (x > maxim)
{
maxim = x;
}
}
fout << total << ' ' << divizibile << ' ' << maxim << '\n';
fin.close();
fout.close();
return 0;
}
Rulează pe un g++ adevărat (C++17, -O2) prin Compiler Explorer. Programele trebuie să se termine repede: există o limită de timp.