Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
-3 / 3 / 0
Регистрация: 10.03.2019
Сообщений: 108

Проблемы с решением. C++. Чехарда с кузнечиками

11.03.2019, 17:34. Показов 3941. Ответов 10

Студворк — интернет-сервис помощи студентам
День добрый. Вот уже 3-й день пытаюсь решить задачу, решил, но не до конца. Прошло 4/6 тестов, какие тесты-неизвестно.
Сам код на Python, но может, кто знает. Очень нужна помощь!
Вот ее условие: Дорожка замощена плитками в один ряд, плитки пронумерованы числами от 1 до 1000. На плитках с номерами A, B и C (A<B<C) сидят три кузнечика, которые играют в чехарду по следующим правилам:

1. На одной плитке может находиться только один кузнечик.

2. За один ход один из двух крайних кузнечиков (то есть с плитки A или с плитки C) может перепрыгнуть через среднего кузнечика (плитка B) и встать на плитку, которая находится ровно посередине между двумя оставшимися кузнечиками (то есть между B и C или A и B соответственно). Если между двумя оставшимися кузнечиками находится чётное число плиток, то он может выбрать любую из двух центральных плиток.

Например, если кузнечики первоначально сидели на плитках номер 1, 5, 10, то первым ходом кузнечик с плитки номер 10 может перепрыгнуть на плитку номер 3 (она находится посередине между 1 и 5), или кузнечик с плитки номер 1 может перепрыгнуть на плитку номер 7 или 8 (эти две плитки находятся посередине между плитками 5 и 10).

Даны три числа: A, B, C. Определите, какое наибольшее число ходов может продолжаться игра.

Входные данные
Программа получает на вход три целых числа A, B и C (1<=A<B<C<1000), записанных в отдельных строках.

Выходные данные
Выведите одно число — наибольшее количество ходов, которое может продолжаться игра.

Примечание к примеру
В примере сначала кузнечик с плитки №6 прыгает на плитку №3. Затем кузнечик с плитки №4 прыгает на плитку №2.
Примеры
входные данные
1
4
6
выходные данные
2

И вот сам код:
Python
1
2
3
4
5
6
7
8
9
10
a = int(input())
b = int(input())
c = int(input())
 
l = (c-b) + (b-a) - 2
s = 0
while (l>0):
    s= s+1
    l = l >> 1
print(s)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.03.2019, 17:34
Ответы с готовыми решениями:

Проблемы с решением. Python. Чехарда с кузнечиками
День добрый. Вот уже 3-й день пытаюсь решить задачу, решил, но не до конца. Прошло 4/6 тестов, какие тесты-неизвестно/ Вот ее условие:...

Чехарда с кузнечиками
Дорожка замощена плитками в один ряд, плитки пронумерованы числами от 1 до 1000. На плитках с номерами A, B и C (ABC) сидят три кузнечика,...

Проблемы с решением системы ДУ
Здравствуйте. Мне нужна помощь в решении системы ду в Matlab. Проблема в следующем: при решении системы, выдает предупреждение: Warning:...

10
Заблокирован
11.03.2019, 18:23
Лучший ответ Сообщение было отмечено CyberNinjaProg как решение

Решение

попробуйте
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
void jump(int a,int b,int c,int n,int &max)
{
    //cout<<a<<" "<<b<<" "<<c<<endl;
    n++;
    if(c-a==2)
    {
        if(n>max) max=n;
        return;
    }
    if(b-a>c-b)
    {
        jump(a,(a+b)/2,b,n,max);
        if((a+b)%2)
            jump(a,(a+b)/2+1,b,n,max);
    }
    else
    {
        jump(b,(b+c)/2,c,n,max);
        if((b+c)%2)
            jump(b,(b+c)/2+1,c,n,max);
    }
 
}
void main(int argc,char **argv)
{
    int a=1,b=4,c=6,max=0;
    cin>>a>>b>>c;
    jump(a,b,c,-1,max);
    cout<<max<<endl;
1
-3 / 3 / 0
Регистрация: 10.03.2019
Сообщений: 108
11.03.2019, 18:29  [ТС]
Спасибо огромное! Извините, я просто еще не пользовался таким способом. Не могли бы вы немного объяснить как вы сделали?
Поправка. Это я ошибся!)) с компиляцией
0
Заблокирован
11.03.2019, 18:32
C++
1
2
3
4
5
6
7
void main(int argc,char **argv)
{
    int a=1,b=4,c=6,max=0;
    cin>>a>>b>>c;
    jump(a,b,c,-1,max);
    cout<<max<<endl;
}
1
-3 / 3 / 0
Регистрация: 10.03.2019
Сообщений: 108
11.03.2019, 18:34  [ТС]
СПАСИБО ВАМ ОГРОМНОЕ!!!)!)!)!

Добавлено через 21 секунду
Благодарю вас за помощь)
0
Заблокирован
11.03.2019, 18:37
решает?
Цитата Сообщение от CyberNinjaProg Посмотреть сообщение
входные данные
1
4
6
выходные данные
2
я ж ток на этом проверял
0
-3 / 3 / 0
Регистрация: 10.03.2019
Сообщений: 108
11.03.2019, 18:41  [ТС]
Извините, я немного не понял, что вы делали в 12, 14,18,20,28 строчке. Там у вас (функция?) jump? И почему помимо формул, там упомянуты через запятую b ,n,max? А то мне разобраться надо, как решается.
0
Заблокирован
11.03.2019, 18:45
рекурсивно новые прыжки, n-текущее их к-во, max-максимальное
0
-3 / 3 / 0
Регистрация: 10.03.2019
Сообщений: 108
11.03.2019, 18:57  [ТС]
jump(a,(a+b)/2,b,n,max);
В этой строчке вы вызвали интерфейс jump (a+b)/2 тоже понятно. А зачем вы в скобках писали a,b,n,max. Я просто еще не знаю этих понятий
0
Заблокирован
11.03.2019, 19:03
Цитата Сообщение от CyberNinjaProg Посмотреть сообщение
jump(a,(a+b)/2,b,n,max);
будут новые a,b,c, бумага и карандаш помогают, комменты стр.3 снять тоже
0
-3 / 3 / 0
Регистрация: 10.03.2019
Сообщений: 108
11.03.2019, 19:11  [ТС]
Извините, я вас не понял.....
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.03.2019, 19:11
Помогаю со студенческими работами здесь

Решение проблемы с решением
Здравствуйте, сможете помочь? s(t) я в матлаб вбил, оказалось правильно, сможете помочь со вторым s(f) как его правильно в матлаб...

Проблемы с решением, после НГ
После НГ никак не могу прийти в себя, и так на заочке учусь пытаюсь решить, пока ничего не получается, кто сможет помочь решить 2...

Проблемы с решением, после НГ
После НГ никак не могу прийти в себя, и так на заочке учусь пытаюсь решить, пока ничего не получается, кто сможет помочь решить 2...

PHP проблемы с решением
Задание

Есть проблемы с решением задачи
Ни для кого не секрет, что студенты ОНУ – самые ярые футбольные болельщики. Но мало кому известно, что Аскольд Портвейник, студент кафедры...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru