Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.96/25: Рейтинг темы: голосов - 25, средняя оценка - 4.96
4 / 5 / 0
Регистрация: 03.11.2019
Сообщений: 16
1

Автоматизировать способ сжатия бинарных данных

03.11.2019, 21:11. Показов 4608. Ответов 3
Метки нет (Все метки)

Итак,проблем с этой задачей:

Последовательность из символов «0» и «1» называется бинарной. Они широко применяются в информатике и других науках. Одно из неудобств бинарных последовательностей – их трудно запоминать. Для решения этой проблемы были предложены разные способы их сжатия. Программист Слава использует следующий способ: просматривая последовательность слева направо, он заменяет «1» на «a», «01» на «b», «001» на «c», …, «00000000000000000000000001» на «z». Напишите программу, которая поможет Славе автоматизировать этот способ сжатия.

Входные данные
Входной файл INPUT.TXT содержит бинарную последовательность – строку из символов «0» и «1» длиной не более 255 символов. Гарантируется, что к ней применим указанный способ сжатия.

Выходные данные
В выходной файл OUTPUT.TXT выведите одну строку из английских строчных букв от «a» до «z» – сжатие заданной бинарной последовательности.

Примеры
№ INPUT.TXT OUTPUT.TXT
1 101 ab
2 101001 abc
3 0000000000000000000000001 y

Вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <bits/stdc++.h>
 
using namespace std;
 
int main()
{
    int code=95,d=0;
    string as,las,las2;
    cin >> as;
    for (int i=as.length();i>=0;i--)
    {
        if (as[i-1]=='1')
        {
            if (i!=as.length()) las=las+(char)(code+d+1);
            d=0;
        }
        d++;
    }
    las=las+(char)(code+d);
    for (int i=las.length();i>=0;i--) las2=las2+las[i-1];
    cout << las2;
    return 0;
}
Непонятно, вроде код рабочий ну а так выдаёт ошибку на первом же тесте!? Хелпуйте!
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.11.2019, 21:11
Ответы с готовыми решениями:

Как автоматизировать интерполяцию данных
Есть такая таблица h. m t ммп1, оС 0,0 1,9 1,0 1,5 2,0 -1,0 3,0 -3,5 4,0 -4,6 5,0 -5,0...

как автоматизировать ввод данных
Есть база учета договоров Каждый договор имеет сумму - месячное начисление. Ввод начислений по...

как автоматизировать импорт данных в БД
ситуация: есть сайт на котором даются данные по объему рынка, цене и качеству товара по различным...

Почему так(комбинации бинарных и не бинарных вводов и выводов)?
#include &lt;string&gt; #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;iomanip&gt; using namespace...

3
3420 / 1966 / 374
Регистрация: 09.09.2017
Сообщений: 8,044
03.11.2019, 23:18 2
лови, фашист, гранату:
10
По правилам должно получиться a0.
А вообще в условии речь идет о файлах, а ваша программа читает-пишет через stdio.
1
4772 / 2233 / 283
Регистрация: 01.03.2013
Сообщений: 5,874
Записей в блоге: 25
03.11.2019, 23:35 3
Лучший ответ Сообщение было отмечено Anioni13 как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
int main() 
{
   char x; int c=0; 
   while (std::cin>>x) 
      if (x=='1') 
     {
          std::cout<<(char)(97+c); 
          c=0;
     } else 
          c++;
}
Код
Тест	Результат	Время	Память
1	Accepted	0,015	404 Кб
2	Accepted	0,015	404 Кб
3	Accepted	0,015	404 Кб
4	Accepted	0,03	404 Кб
5	Accepted	0,015	404 Кб
6	Accepted	0,015	408 Кб
7	Accepted	0,015	404 Кб
8	Accepted	0,015	404 Кб
9	Accepted	0,015	404 Кб
10	Accepted	0,015	404 Кб
11	Accepted	0,015	404 Кб
12	Accepted	0,03	404 Кб
13	Accepted	0,03	404 Кб
14	Accepted	0,015	408 Кб
15	Accepted	0,015	404 Кб
16	Accepted	0,015	404 Кб
17	Accepted	0,015	404 Кб
18	Accepted	0,015	404 Кб
19	Accepted	0,015	404 Кб
20	Accepted	0,015	404 Кб
1
4 / 5 / 0
Регистрация: 03.11.2019
Сообщений: 16
07.11.2019, 20:26  [ТС] 4
Спс
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.11.2019, 20:26

Автоматизировать импорт данных в Access из Excel
Есть база данных, в которой очень много таблиц в хорошем виде. Но данные могут обновляться, нужно...

При попытке выполнения сжатия диска система пишет, что доступное для сжатия место — всего лишь 45 МБ
Приветствую. Пытаюсь отделить от диска D (не системный) 50гб памяти. На диске 450+гб памяти всего...

Можно ли автоматизировать перенос данных строк в столбцы
С определенными условиями. Шрифт разный. Словами не могу объяснить.) Пример в прикрепленном файле.

Автоматизировать и оптимизировать обработку большого количества данных
Есть два файла, в одном случае только форма которую надо заполнить (фаил перечень) и есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru