Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.11.2012, 19:50   #1
kostan3
- Дорогой, а ты ку
Форумчанин
 
Регистрация: 06.10.2012
Сообщений: 181
Восклицание задача 73 расшифровка

Расшифровка
(Время: 1 сек. Память: 16 Мб Сложность: 28%)

Рассмотрим работу простейшего шифра. Шифруемое сообщение состоит из латинских букв, записанных в нижнем регистре и символа пробела. Шифрование происходит посимвольно. Каждой букве ставим в соответствие число: a – 1, b – 2, … , z – 26, ‘ ‘ – 27. Далее индекс символа складывается с номером в сообщении по модулю 27, а результат сложения представляется в системе счисления с основанием 27 (0, 1, …, Q в верхнем регистре).

Необходимо написать дешифратор.
Входные данные

В единственной строке входного файла INPUT.TXT содержится закодированная строка, длиной не более 255 символов. Строка записана в верхнем регистре.
Выходные данные

В единственную строку выходного файла OUTPUT.TXT нужно вывести расшифровку заданной строки, при этом символы латинского алфавита следует выводить в нижнем регистре
вот мой код
Код:
#include <iostream>
#include <string>
using namespace std;
char sym[] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',' '};
int main(){
    freopen("input.txt","r",stdin);
   freopen("output.txt","w",stdout);
    string s, res;
    cin >> s;
    for (int i=0; i<s.length(); ++i)
    {
        int n;
        if (s[i] >= '0' && s[i] <= '9')
           n = s[i] - '0';
        else
            n = s[i] - 'A'+10;
        n -= (res.length()+1);
        while (n < 0)
              n+=27;
        res += sym[n-1];
    }
    cout << res << endl;
    return 0;
}
который застрял на 6 тесте помогите
код можно писать на всех языках во всех разбираюсь желательно полный
kostan3 вне форума Ответить с цитированием
Старый 27.08.2016, 14:34   #2
kostan33
Пользователь
 
Регистрация: 25.08.2016
Сообщений: 10
По умолчанию

WA5 и WA6 - что-то с пробелами!
попробуйте тесты, типа 1, ans = ' '
вот рабочий код
Код:
#include <iostream>
#include <cstdio>
#include <string>
#include <cmath>
#include <map>
using namespace std;
map < char, int > a;
char b[100];
int main() {
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
string s;
cin >> s;
int k = 0, l = 0;
for (char i = '0'; i <= '9'; i++)
a[i] = k++;
for (char i = 'A'; i <= 'Q'; i++)
a[i] = k++;
b[l++] = ' ';
for (char i = 'a'; i <= 'z'; i++)
b[l++] = i;
 
for (int i = 0; i < s.length(); i++) {
int p = a[s[i]];
int w = ((p - i - 1) % 27 + 27) % 27;
cout << b[w];
}
return 0;
}
kostan33 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Препроцессор. Расшифровка Sna1L Общие вопросы C/C++ 2 12.03.2012 12:11
расшифровка кода 1с karol Фриланс 3 02.05.2011 15:40
расшифровка ошибки Varv Помощь студентам 7 07.02.2011 08:07
Расшифровка файла Uragan4ik Общие вопросы Delphi 0 02.02.2011 14:31