Am nevoie de problema atbash de pe pbinfo. Atbash
Cifrul atbash este un cifru de substituție care constă în inversarea alfabetului: prima literă din alfabet se interschimbă cu ultima, a doua cu penultima, etc.
Cerința
Se dă un șir s care conține doar litere mari. Să se aplice cifrul atbash pe el.
Date de intrare
Fișierul de intrare atbash.in conține pe prima linie șirul s.
Date de ieșire
Fișierul de ieșire atbash.out va conține pe prima linie șirul după aplicarea cifrului atbash.
Restricții și precizări
1 ≤ lungimea șirului ≤ 1.000.000
Exemplu
atbash.in
ANAAREMERE
atbash.out
ZMZZIVNVIV
Algoritmul meu este urmatorul, acesta dandu-mi doar 70 de puncte:
#include
#include
using namespace std;
char s[256];
ifstream in("atbash.in");
ofstream out("atbash.out");
int main()
{
int a,i,b;
in >> s;
for(i=0;i
{
s[i]=90-s[i]+65;
}out << s;
}
De asemenea, cum as putea declara un sir cu 1000000 de caractere fara probleme?
Răspunsuri la întrebare
Răspuns de
4
Răspuns:
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("atbash.in");
ofstream g("atbash.out");
char a, b;
int main()
{
while (f >> a)
{
b=155-a;
g << b;
}
}
Explicație:
Alte întrebări interesante
Chimie,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
char s[1000002];