Pagini recente » Diferente pentru problema/reborn intre reviziile 4 si 3 | Diferente pentru utilizator/mesbot intre reviziile 1 si 2 | Diferente pentru utilizator/alex_mircescu intre reviziile 1 si 2 | Diferente pentru problema/tractor2 intre reviziile 3 si 2 | Diferente pentru parsarea-numerelor intre reviziile 1 si 7
Nu exista diferente intre titluri.
Diferente intre continut:
h1. Parsarea Numerelor
Sunt probleme care au datele de intrare mari (ex. 1 milion de numere), solutia e simpla se poate parsa citirea
Sunt probleme care au datele de intrare mari (ex. 1 milion de numere), la care citirea simpla nu intra in timp, sau pur si simplu ne ia prea mult din timpul de rezolvare efectiva a problemei. Solutia e simpla: se poate parsa citirea, adica se citeste cate un bloc de caractere si apoi se parcurge caracter cu caracter.
h2. Numere naturale
void citeste(int &numar)
{
numar = 0;
numar = 0;
//cat timp caracterul din buffer nu e cifra ignor
while (buff[poz] < '0' || buff[poz] > '9')
//daca am "golit" bufferul atunci il umplu
if (++poz == DIM)
fread(buff,1,DIM,stdin),poz=0;
//cat timp dau de o cifra recalculez numarul
while ('0'<=buff[poz] && buff[poz]<='9')
{
numar = numar*10 + buff[poz] - '0';
}
==
acest cod functioneaza cand numerele apr pe randuri diferite
acest cod functioneaza cand numerele apar pe randuri diferite
h2. Numere reale
== code(c) |
#define DIM 10000
char buff[DIM];
int poz=0;
== code(c) |
void citeste(double &numar)
{
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.