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

Задача "Водолей" - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Двоичные файлы http://www.cyberforum.ru/cpp-beginners/thread642357.html
У меня есть код программы работающий с текстовыми файлами, #include <iostream> #include <conio.h> #include <cstdlib> #include <locale.h> #include <string.h> #include <fstream> using namespace std;
C++ Реализация собственного умного укзателя Доброго времени суток! При самостоятельной реализации умного указателя столкнулся с проблемой при удалении самого указателя. Код программы имеет вид: #pragma once template <class Object> class Smart_ptr { http://www.cyberforum.ru/cpp-beginners/thread642344.html
C++ Описать класс "Конус"
Язык С 1. Опишите класс "Конус" Данные класса: координаты центра основания, радиус основания, высота. Конструкторы класса: конструктор по умолчанию, конструктор конуса с центром в начале координат, конструктор произвольного конуса. 2. Определите методы: ввод конуса, вывод на экран, определение площади поверхности, определение объёма конуса. 3.Объявите конус с центром в начале координат и...
деббагинг и отладка c++ C++
С чего начать,о отладки вообще ничего не знаю и о дебагинге.
C++ Исключения в классах http://www.cyberforum.ru/cpp-beginners/thread642292.html
Здравствуйте. Какими средствами правильней всего сделать обработку исключений в классах? /* например, эта функция */ int SomeClass::someFunc( int some_arg ) { return some_arg * 18 } /* для нормальной работы должна получать числа от 0 до 42. Как реагировать на остальное? */
C++ как сделать консольное окно поверх всех окон сабж было бы очень удобно дебагить если можно было бы это сделать заранее спасибо подробнее

Показать сообщение отдельно
PG94
2 / 2 / 0
Регистрация: 15.01.2012
Сообщений: 181

Задача "Водолей" - C++

25.08.2012, 12:21. Просмотров 2605. Ответов 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 операций.
Некоторые соображения:
  • если N>A и N>B, то невозможно
  • если А=B и N%A!=0, то невозможно
  • если N=A или N=B, то наполняем равный
  • определяем какой сосуд больший(v=max), а какой меньший(v=min)
  • Повторяем >min, min>max пока max!=N или сосуд полностью не заполнится
  • Если max полон, min пуст, а N литров мы так и не получили, то ответ - невозможно
  • Если же min не пуст, то max>,min>max и повторяем цикл наполнения
Это пока всё, что пришло на ум. Нужна помощь в реализации на языке и главное в подсчёте операции и вкл. этого элемента условия в решение. Спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru