Prin asocierea fiecărei litere mici din alfabetul englez cu un număr egal cu poziția literei în alfabet,
se poate codifica orice secvență de litere mici cu o secvență de numere. Scrieți un program C++
care citește din fișierul text cod.txt un număr n (0
ăde n litere mici. Folosind un algoritm eficient din punctul de vedere al gestionării memoriei,
programul va codifica secvența de caractere citită și va scrie pe ecran numerele asociate,
separate prin spații. Exemplu: pentru fișierul cod.txt:
7
bacinfo
se vor afișa pe ecran, în ordine, numerele:2 1 3 9 14 6 15.
Răspunsuri la întrebare
Răspuns de
3
#include <iostream>
using namespace std;
int main()
{
char c;
int n;
cin>>n;
while(n>0){
cin>>c;
cout<<c-'a'+1<<" ";
n--;
}
return 0;
}
Programul este eficient ca memorie pentru ca foloseste doar 2 variabile: n pentru numarul total de caractere, c pentru un caracter. Ambele variabile sunt necesare citirii datelor. Nu este folosit un vector de caractere pentru caractere si nici variabile pentru iteratie(for i..)
Programul este eficient ca viteza pentru ca trece prin toate caracterele o singura data si genereaza codarea la fiecare caracter in parte imediat ce l-a citit. Deci are viteza de tip O(n)
using namespace std;
int main()
{
char c;
int n;
cin>>n;
while(n>0){
cin>>c;
cout<<c-'a'+1<<" ";
n--;
}
return 0;
}
Programul este eficient ca memorie pentru ca foloseste doar 2 variabile: n pentru numarul total de caractere, c pentru un caracter. Ambele variabile sunt necesare citirii datelor. Nu este folosit un vector de caractere pentru caractere si nici variabile pentru iteratie(for i..)
Programul este eficient ca viteza pentru ca trece prin toate caracterele o singura data si genereaza codarea la fiecare caracter in parte imediat ce l-a citit. Deci are viteza de tip O(n)
Alte întrebări interesante
Engleza,
8 ani în urmă
Franceza,
8 ani în urmă
Biologie,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă