5 / 5 / 3
Регистрация: 07.11.2011
Сообщений: 21
|
||||||
1 | ||||||
Исполнитель водолей16.12.2011, 04:22. Показов 13239. Ответов 6
Метки нет (Все метки)
Здравствуйте! Есть "Сишный"(С++) код:
Кстати вот и сама задача: У исполнителя “Водолей” есть два сосуда, первый объемом A литров, второй объемом B литров, а также кран с водой. Водолей может выполнять следующие операции: Наполнить сосуд A (обозначается >A). Наполнить сосуд B (обозначается >B). Вылить воду из сосуда A (обозначается A>). Вылить воду из сосуда B (обозначается B>). Перелить воду из сосуда A в сосуд B (обозначается как A>B). Перелить воду из сосуда B в сосуд A (обозначается как B>A). Команда переливания из одного сосуда в другой приводят к тому, что либо первый сосуд полностью опустошается, либо второй сосуд полностью наполняется. Программа получает на вход три натуральных числа A, B, N, не превосходящих 104 Вам необходимо вывести алгоритм действий Водолея, который позволяет получить в точности N литров в одном из сосудов, если же такого алгоритма не существует, то программа должна вывести текст Impossible. Количество операций в алгоритме не должно превышать 105. Гарантируется, что если задача имеет решение, то есть решение, которое содержит не более, чем 105 операций.
0
|
16.12.2011, 04:22 | |
Ответы с готовыми решениями:
6
Исполнитель Водолей Исполнитель Водолей Исполнитель Водолей Задача "Исполнитель Водолей" |
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
|
|
16.12.2011, 09:28 | 2 |
Даже условие переписать нормально лень. Там же не 104, 105, а 10^4, 10^5
Добавлено через 1 минуту И вообще, зачем тебе олимпиадные задачи, если даже азы ни Паскаля ни С++ не знаешь?
0
|
5 / 5 / 3
Регистрация: 07.11.2011
Сообщений: 21
|
|
16.12.2011, 10:29 [ТС] | 3 |
Хм, это не олимпиадная задача, это одна из задач которую нам подкинул методист из лицея.
"Азов С++" я действительно не знаю, так как мы изучаем именно Pascal, тему "Циклы while", а задача я так понимаю на использование циклов с постусловием, так как я не понял как решать данную задачу, я немного "погуглил" и нашел решение на С++ в котором не могу разобраться. Условие действительно не точно, вы правы.
0
|
приходько
|
||||||
15.11.2012, 20:58 | 4 | |||||
Всё очевидно.
1) С++ позволяет создавать переменные прямо по ходу программы (поэтому отсутствует раздел объявления и инициализации переменных). 2) do {...} while (condition) означает while (condition) do begin ... end; Код вот:
И спасибо за С++ код. Второй день маялся, 49, 50, 52,56 тестов... а так - за полчаса сдал. |
15.11.2012, 21:17 | 5 | ||||||||||
Ну и неверно.
0
|
приходько
|
|
16.11.2012, 20:16 | 6 |
Ты циклы давно проходил?
while - цикл с опережающим условием, выполняется пока оно истино. repeat - цикл со следующим условием, выполняется до тех пор как оно станет истинным (пока оно ложно). Единственное различие - repeat выполняется один раз в любом случае, но так как моя задача прошла все тесты, это может означать следующее: а) Лишний пробег цикла здесь роли не играет; или б) Я прав. Это к вопросу о том, что кто-то "не понимает как пользоваться этим циклом", но уже набрался храбрости перечить. Я оставил ответ в теме задачи "Водолей" на первой всплывающей вкладке для тех, кто как я с ней работал, но не смог самую малость. Пользователь получил красную карточку за это сообщение.
|
16.11.2012, 20:27 | 7 |
Во-первых, будьте повежливее.
Во-вторых, посмотрите на предмет обсуждения. Где здесь ваше "опережающее" условие, а? Ничего, что это цикл с постусловием? И ваше утверждение, что неверно, хотя бы потому, что цикл с постусловием неэквивалентен циклу с предусловием.
0
|
16.11.2012, 20:27 | |
16.11.2012, 20:27 | |
Помогаю со студенческими работами здесь
7
Задача "Исполнитель Водолей" Подскажите алгоритм. Задача "Водолей" Исполнитель Робот Исполнитель и альбомы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |