4 / 3 / 3
Регистрация: 15.07.2014
Сообщений: 77
|
||||||
1 | ||||||
Работа со строками06.05.2016, 23:29. Показов 1503. Ответов 2
Метки нет Все метки)
(
Имеется задачка (олимпиадная, но олимпиада уже прошла):
Новый кодовый замок для владельцев нетбуков представляет головоломку не только для грабителей, но и для владельцев. На табло замка все время высвечивается некоторая комбинация нулей и единиц. Замок откроется, если на табло высветится некоторая определенная комбинация. Получить требуемую комбинацию из текущей можно нажимая в нужной последовательности кнопки, на которых написано 0 и 1 соответственно. Если нажать кнопку с нулем, то текущая комбинация на табло сдвигается на одну позицию вправо (правая цифра при этом исчезает), а в самом левом разряде записывается 0. При нажатии на кнопку с единицей происходит то же самое, только в левый разряд записывается 1. Известно, какая комбинация цифр сейчас находится на табло, и какую комбинацию требуется получить, чтобы открыть замок. Помогите владельцу нетбука - определите, за какое минимальное количество нажатий на кнопки можно получить требуемую комбинацию. Формат входных данных: Первая строка содержит текущую последовательность цифр, вторая строка - последовательность, которую требуется получить. Гарантируется, что обе последовательности не пустые, имеют одинаковую длину, не превосходящую 100 000, и состоят только из нулей и единиц. Цифры в строках записаны подряд (без пробелов). Формат выходных данных: Выведите минимальное количество нажатий на кнопки, с помощью которого можно решить поставленную задачу. Вот мой код:
Например при введённых 1011 и 1111 должен выводить 3, а выводит 2. Объясните в чём ошибка?
0
|
|
06.05.2016, 23:29 | |
Ответы с готовыми решениями:
2
Работа со строками
Работа с строками |
Вездепух
![]() ![]() 10820 / 5841 / 1585
Регистрация: 18.10.2014
Сообщений: 14,497
|
|
07.05.2016, 03:30 | 2 |
Во-первых, какой "алгоритм"? Вы пока что привели только код, т.е. реализацию некоего алгоритма. При этом, по вашим же словам, код работает неправильно, т.е. задуманному вами алгоритму скорее всего не соответствует. Каким образом по-вашему в такой ситуации мы должны определить, какой именно алгоритм вы пытались реализовать? Телепатией?
Во-вторых, прекрасно видно, что ваша реализация на каждой итерации меняет исходное значение str1 и на следующую итерацию уже идет "искореженное" значение str1 . Вы именно этого хотели в вашем алгоритме? (Как профессиональный телепат, скажу вам по секрету, что именно в этом и заключается ваша ошибка.)В-третьих, scanf("%s", str1) . Никакого & .В-четвертых, в стандартной библиотеке нет функции _strrev .В-пятых, что за бардак с включением заголовочных файлов? Что тут делает какой-то "stdafx.h" ? И с какой целью в код включены одновременно <cstring> и <string.h> ? Зачем включен <iostream> ?
0
|
4 / 3 / 3
Регистрация: 15.07.2014
Сообщений: 77
|
||||||
07.05.2016, 11:05 [ТС] | 3 | |||||
Согласен, оформил жутко, извини.
Сделать я хотел следующее: Пока две строки не равны, отнимать у них по 1 цифре (у первой строки - из конца, у второй строки - из начала) Кол-во таких сокращений и есть ответ (переменная а). Пример:
Можешь помочь реализовать это?)
0
|
07.05.2016, 11:05 | |
Помогаю со студенческими работами здесь
3
Работа со строками Работа со строками
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |