Rezolvare completă PbInfo #3310 afin

Afin

Cifrul Afin este un cifru unde fiecare literă este înlocuită cu o altă literă printr-o operație matematica. Fiecărei litere i se asociază un cod: a-0, b-1, c-2, … z-25. De asemenea, mai avem două numere a și b, numite chei. Fiecare literă se înlocuiește cu litera care are codul egal cu (a*x+b)mod. 26 , unde x este codul literei.

Cerinta

Dându-se valoarea celor două chei și un mesaj să se afișeze mesajul criptat.

Date de intrare

Fișierul de intrare afin.in conține pe prima linie numerele a b iar pe a doua linie un mesaj.

Date de ieșire

Fișierul de ieșire afin.out va conține pe prima linie mesajul criptat.

Restricții și precizări

  • 1 ≤ a , b ≤ 26
  • 1 ≤ lungimea șirului ≤10000
  • mesajul va conține doar litere mici ale alfabetului englez

Exemplu

afin.in

17 20
twentyfifteen

afin.out

fekhfmbabfkkh

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema afin:

#include <fstream>

using namespace std;
char v[130];
int main()
{
    ifstream cin ("afin.in");
    ofstream cout ("afin.out");
    int a,b;
    char c;
    cin>>a>>b;
    for(char i='a';i<='z';i++)
    {
        int val=(i-'a');
        v[(int)(i)]=(char)((a*val+b)%26+'a');
    }
        while(cin>>c)
        {
            cout<<v[(int)(c)];
        }
    return 0;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #3310 afin

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #3310 afin de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!