Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.65
Gr1f0n
1 / 1 / 0
Регистрация: 05.09.2009
Сообщений: 10
#1

Задача про слона 0о - C++

14.09.2009, 16:21. Просмотров 3339. Ответов 31
Метки нет (Все метки)

Нам задали прикольную задачу.
От пункта А до пункта Б 12км.
На каждом километре есть склад.
Склады заполнены бананами(кол-во произвольное т.е. рандом или введено с клавы).
Из пункта А в пункт Б движется Слон.
У слона есть корзина, в которую помещается 6 бананов.
Слон на каждом километре съедает по 1 банану.
Нужно перенести все бананы из складов в пункт Б.
Бананы слон может как брать со склада так и класть по дороге на черный день =)

(Побочный вопрос! Что курил наш преподаватель? )


Или как можно больше хотя бы...

Добавлено через 1 минуту
Кстати мы еще только знаем:
Циклы
Массивы
Строки
Условие Иф
собственно все =)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.09.2009, 16:21     Задача про слона 0о
Посмотрите здесь:

Задача про банку - C++
Вася живет в стране Осьляндии, где, как всем известно, люди хранят деньги в банках. На совершеннолетие родители подарили Васе новую чистую...

Задача про самолет - C++
Здравствуйте.вопрос,вернее просьба разрбраться в своем же коде.писал честно говоря "по памяти",когда начал разбирать свои ошибки,честно...

Задача про скобки - C++
Всем привет. Недавно показали мне такую задачу: ... намекнув на рекурсию. Кто-нибудь знает, как это решается? Спасибо :) ...

Задача про биты - C++
Написать функцию, которая возвращает число, полученное из числа X,в котором все розряды, расположенные правее центральной позиции, заменены...

Задача про дату! - C++
Три файла: 1.date.cpp 2.date.h (заголовочный) 3.main.cpp Ну собственно в main.cpp, cout месяц не тот выводит.... И если в assert...

Задача про матрицу - C++
Вообщем завтра сдать надо бы по хорошему. Мне осталось сделать 1 задачу, которую я не знаю как делать. Может напишет кто-нибудь,...

Задача про буквы - C++
Условие задачи таково: изменить в строке все маленькие буквы на большие, всё это делается в файле!Мой вопрос:существуют ли какие лиюо...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gravity
562 / 556 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
14.09.2009, 17:42     Задача про слона 0о #2
В чем собсно вопрос? Узнать сколько бананов донес слон?
easybudda
Эксперт CЭксперт С++
9470 / 5483 / 927
Регистрация: 25.07.2009
Сообщений: 10,506
14.09.2009, 18:09     Задача про слона 0о #3
Цитата Сообщение от Gr1f0n Посмотреть сообщение
Нужно перенести все бананы из складов в пункт Б.
Решения в принципе нет, т.к.
Цитата Сообщение от Gr1f0n Посмотреть сообщение
Слон на каждом километре съедает по 1 банану.
zim22
depict1
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
14.09.2009, 18:27     Задача про слона 0о #4
Цитата Сообщение от easybudda Посмотреть сообщение
Решения в принципе нет, т.к.
ты не прав. перечитай внимательней условие задачи.
kravam
быдлокодер
1693 / 880 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
14.09.2009, 18:58     Задача про слона 0о #5
Задача нормальная, кстати, только автор условие неправильно до нас донёс.

...При таком условии слон вряд ли донесёт все бананы до конца, ибо смотри. (То есть, если я правильно понял, съеденый банан съеден безвозвратно)

Допустим, выпала такая сумма бананов, что в общей сложности их штук 38.
Донесёт ли их слон? Нет. Ибо съест максимум 12, да 6 уместится в корзину, итого 38- (6+ 12)= 20
12 бананов осталось на дороге. Задаче то есть не решена.

Значит, в условие надо добавить: слон может возвращаться чтобы... уничтожать бананы, скажем так. По одному за километр. Так решаемо, но... неинтересно.

Ибо имеем на трассе 30 бананов, слон тупо прошёлся по трассе туда-сюда сколько-то там раз, сожрал 24 банана, да 6 положил в корзину. Тоже ничего интересного. Ну, то есть.Каждый элемент километр, его значение- количество бананов на этом километре

int trasssa [2, 0, 5, 1, 1, 3, 9, 4, 2, 3, 0, 1]

Решается банально, циклом проходим туда-сюда, каждый раз отнимая от каждого элемента (кроме нулевых) по единице, и не забыть за раз шесть отнять (можн сразу от суммы всех элементов отнять), положив в корзину. Когда сумма всех элементов становится равной нулю, бодренько идём на последний цикл (i==0), доходим до конца и говори, что бананов на трассе нет, все в корзине или съедены.

Но всё кардинально меняется, если за проход каждого километра слон обязан либо съесть банан, либо класть его в корзину. Не то, что: что хочет, то и делает, а именно так.
Вот это уже совсем другой коленкор.
...Так. а тогда задача не будет иметь решение при таком начальном раскладе

int trasssa [0, 0, 0, 0, 0, 0, 0, 4, 2, 3, 0, 1, ]

...Смотрите, даж если предположить, что изачально у слона в корзине уже есть 6 бананов, он всё равно не пройдёт трассу. Пройдёт то есть 6 километров, а седьмой не сможет- бананов нет уже. Ни в корзине, ни на километре.

Посему, после долгих размышлений я пришёл к выводу, что на каждом километре в начале пути обязан быть хотя бы один банан. И для простоты- пустая корзина.

int trasssa [4, 7, 5, 1, 1, 3, 9, 4, 2, 3, 8, 1];

Окончательное условие.
Есть трасса в 12 километров, посередине каждой трассы склад с бананами, бананов на кажлдом скаледе ненулевое число.
Имеется слон с корзиной, изначально в ней ноль бананов. Он проходит трассу на каждом километре убирая со склада один банан: либо съедая, либо кладя в корзину. Можно ходить в двух направлениях.
Требуется составить программу прохождения слоном всей трассы.

...А теперь я расскажу алгортм, кторый нужно реализовать, чтобы вы поняли, что всё выше сказанное не бред сивой кобылы.
Алгоритм такой: в цикле рассматриваем все числа массива. Первое число 4, в корзине ноль бананов (int korzina= 0) иммитируем проход слона туда обратно два раза. После этого

int trassa [0]== 0;
int korzina==4;

То есть первый склад мы опорожнили, корзину наполнили (это для примера, слон может съесть сколько-то бананов, тогда после первого километр (после первого числа) расклад будет, например, таким:

int trassa [0]== 0;
int korzina==0

Понятно что в конце каждого прохода в цикле int trassa [i]==0

Так вот. Алгоритм изменения чисел trassa [i] и korzina должен быть таков, что по окончании каждого тела цикла должно быть так:

korzina!= 0
А потому, что слон не знает и мы не зхнаем заранее числа.
И если последнее число будет 2 а в корзине перед ним 0 бананов, ну то естьтак

int trassa [11]== 2;
int korzina==0;

То слон трассу не прошёл.

Повторюсь: раз мы не знаем заранее trassa [11], дабы исключить последнюю описаную ситуацию, алгоритм надо так составить, что бы по окончании каждого цикла в корзине находилось ненулевое количество бананов.

Добавлено через 13 минут
Там я с ситаксисом объявления массива намудрил. И ещё: первоначально в корзине должен быть хотя бы один банан.
Иначе при таком раскладе

int trasssa [12]= {2, 7, 5, 1, ..., ..., };

не будет пройден даже первый километр.
БурундукЪ
9534 / 2531 / 66
Регистрация: 17.02.2009
Сообщений: 10,364
14.09.2009, 19:06     Задача про слона 0о #6
Цитата Сообщение от kravam Посмотреть сообщение
первоначально в корзине должен быть хотя бы один банан.
а если на нулевом километре, т.е. в точке А тоже склад? тогда складов 13, и банан тогда можно на складе взять
kravam
быдлокодер
1693 / 880 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
14.09.2009, 19:19     Задача про слона 0о #7
Усложнить задачу можно, безусловно, интереса ради. Но не так. Ибо нужно ещё оговорить правила взятия бананов с нулевого склада.
Со всех остальных складов правила просты.

Прошёл километр номер такой-то и со соответствующего склада либо взял банан либо не взял.
А с нулевого как брать?
...То есть кто хочет, пусть усложняет условие. Но за усложнением не должен быть сумбур, как у нашего уважаемого Gr1f0n.
БурундукЪ
9534 / 2531 / 66
Регистрация: 17.02.2009
Сообщений: 10,364
14.09.2009, 19:30     Задача про слона 0о #8
kravam, это не для усложнения, а для того чтобы слон на 1м же км от голода не сдох. )))
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
14.09.2009, 19:43     Задача про слона 0о #9
Предлагаю такой вариант:
Есть 12 км, 13 складов. Слон стоит в пункте A возле склада с пустой корзиной.
После прохождения каждого километра слон должен съесть один банан или умрет с голоду.
В корзину помещается до 6 бананов.
На склад входит неограниченное кол-во бананов.
Слон может класть бананы на склад, брать банан со склада, есть банан из корзины, есть банан со склада.
Кол-во бананов на складах задается случайно от 0 до 100.
Задача: Указать посл-ть действий слона чтобы переместить максимальное кол-во бананов на склад в пункте Б.
Или ответ - "СЛОН УМЕР ОТ ГОЛОДА".

Добавлено через 2 минуты
IMHO в такой трактовке задача достаточно однозначна.

Добавлено через 1 минуту
Если задать условие, что на складе изначально имеется от 1 до 100 бананов, тогда очевидно что имеется решение и слон не умрет от голода
reich
110 / 46 / 3
Регистрация: 03.09.2009
Сообщений: 112
14.09.2009, 23:03     Задача про слона 0о #10
Я думал иначе...
Есть склады, в каждом некое количество бананов. Слон идет с корзиной. Проверяем, сколько бананов на складе, если много и корзина пустая, то кладем бананы в корзину и один в рот, иначе только в рот. Если бананов мало, то смотрим на их количество в корзине и или докладываем в корзину или кушаем. И так ходить из А в Б, пока не закончатся бананы на последнем складе. И тогда мы подсчитываем, сколько бананов сьел слон и сколько принес в пункт Б.
Sov3117
0 / 0 / 0
Регистрация: 12.09.2009
Сообщений: 10
15.09.2009, 03:11     Задача про слона 0о #11
Цитата Сообщение от odip Посмотреть сообщение
На склад входит неограниченное кол-во бананов.
наверно на склад нельзя ложить более 99 бананов (или ещё лучше того кол-ва которое сгенерируется)
kravam
быдлокодер
1693 / 880 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
15.09.2009, 03:29     Задача про слона 0о #12
На склад нельзя ничего ложить потому, что на склад ничего нельзя ложить НИКОГДА!
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
15.09.2009, 08:33     Задача про слона 0о #13
наверно на склад нельзя ложить более 99 бананов
Так неинтересно - тогда слон принесет мало бананов
reich
110 / 46 / 3
Регистрация: 03.09.2009
Сообщений: 112
15.09.2009, 10:15     Задача про слона 0о #14
Цитата Сообщение от odip Посмотреть сообщение
Так неинтересно - тогда слон принесет мало бананов
за один проход будет 12 скушаных и 6 в корзине...

У кого-то есть нормальное и корректное условие?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.09.2009, 12:15     Задача про слона 0о
Еще ссылки по теме:

Задача про теплоход - C++
Теплоход проходит за P1 по течению и R1 часа против течения S км. Он же за R2 ч против течения проходит на N км больше чем за P2 ч. по...

Задача про календарь - C++
Имеется задача: Два одноклассника Петя и Вася родились не ранее 1993 и не позднее 1994 года, причем, Петя старше Васи. Напишите...

Задача про графы - C++
помогите если не сложно Тексты нужно переписывать в тело сообщения!

Задача про монахов - C++
Условие такое: Имеется n монахов и m пирогов. Ведущий монах съедает за один раз 10 пирогов, обычный - 5, ученик монаха - 0.5. Вывести все...

Задача про 2 рюкзака - C++
Дано n предметов a1..an, и дан вес каждого из них. Требуется разделить все предметы на две группы так, чтобы вес каждой из груп был...


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

Или воспользуйтесь поиском по форуму:
kravam
быдлокодер
1693 / 880 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
15.09.2009, 12:15     Задача про слона 0о #15
Цитата Сообщение от kravam Посмотреть сообщение
Окончательное условие.
Есть трасса в 12 километров, посередине каждой трассы склад с бананами, бананов на каждом складе ненулевое число.
Имеется слон с корзиной, изначально в ней один банан. Он проходит трассу на каждом километре обязательно убирая со склада один банан: либо съедая, либо кладя в корзину. Можно ходить в двух направлениях.
Требуется составить программу прохождения слоном всей трассы.
То есть надо сделать так, чтобы перед каждым километром корзина должна быть непуста. Почему- я уже объяснил.
Yandex
Объявления
15.09.2009, 12:15     Задача про слона 0о
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru