Przejdź do treści

Szyfr Beauforta

🔗 Opis problemu

Implementacja

#include <iostream>

using namespace std;

string encode(string message, string key) {
    string encoded;
    int letter, keyIndex, k;
    letter = keyIndex = k = 0;

    for(char character : message) {
        k = 26 - ((int)character - (int)'a') + ((int)key[keyIndex] - (int)'a');
        k %= 26;
        letter = (int)'a' + k;

        if (letter > (int)'z') {
            letter = (int)'a' + letter - (int)'z';
        }

        encoded += (char)letter;
        keyIndex++;
        keyIndex %= key.size();
    }

    return encoded;
}

int main() {
    string message = "computerscience";
    string key = "cat";

    string encoded = encode(message, key);
    string decoded = encode(encoded, key);

    cout << "Encoded: " << encoded << endl;
    cout << "Decoded: " << decoded << endl;

    return 0;
}