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

задача: какая банка останется последней? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Изучение встроенных типов стека и очереди в обобщенной и необобщенной реализациях на примере создания списка подсписков http://www.cyberforum.ru/cpp-beginners/thread538729.html
В соответствии с вариантом реализовать двухуровневую структуру данных в виде списка - подсписков.Для реализации структуры использовать встроенные типы стека и очереди в обобщенной и необобщенной реализациях(Stack,Stack<T>,Queue,Queue<T>).Вкачестве элементов структур использовать типы (class,struct),содержащиe поля ключа и информации.Типы полей выбрать самостоятельно. Реализовать следующие...
C++ Изучение базовых средств для организации и обработки простых динамических структур в виде линейных циклических списков Помогите плиз !!!! вот задание -Начальная инициализация структуры (список пуст). -Добавление элемента в список (с учетом порядка, заданного в варианте). -Удаление элемента из списка (с учетом порядка, заданного в варианте). -Просмотр первого элемента в списке. -Проверка списка - пустой он или не пустой -Вывод структуры на экран. Тип списка Двухсвязный очередь http://www.cyberforum.ru/cpp-beginners/thread538708.html
C++ Составить программу вычисления функции...
Составить программу вычисления функции f(t)=t^2+2,5t/t+1, аргументы вводятся с клавиатуры.
comboBox C++
есть три comboBoxа, из каждого передаются индексы выбранного элемента. и нужно из этих индексов создать трехзначное число. помогите пожалуйста, а то я туплю по жесткому 8))
C++ Структуры. Поиск книги по году издания. http://www.cyberforum.ru/cpp-beginners/thread538655.html
Написать программу поиска книги по году издания в массиве структур))))Заранее спасибо)
C++ Перенос курсора мыши. Товарищи программисты как перенести курсор мыши в заданную позицию на экране? Помогите пожалуйста! подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
04.04.2012, 16:51     задача: какая банка останется последней?
Цитата Сообщение от ITTI Посмотреть сообщение
какую банку разобъют последней?
можно шуткой: первую (ведь она на момент разбивания стоит на первом месте). На самом деле решение при таких ограничениях только одно:
Сначало считать количество оставшихся целых банок после каждого битья. Потом отталкиваясь от оставшегося количества восстанавливать номер банки в обратную сторону. Можно учесть еще вот такой момент:
Допустим осталось 9 банок, и мы должны разбить каждую 8. Разбиваем каждую восьмую остается 8 банок. Далее разбиваем первую банку - остается 7 банок. Далее мы должны разбить каждую 9 банку - вот тут можно остановиться. Ведь разобьется теперь последней та банка, которая сейчас последняя (седьмая).
Я на примере
Цитата Сообщение от ITTI Посмотреть сообщение
если 9 банок, то 6.
объясню как я бы решал. Итак имеем 9 банок.
1. Разбиваем 1-ую. остается 8.
2. Разбиваем каждую вторую. Остается 4.
3. Разбиваем 1-ую. Остается 3.
4. Разбиваем каждую 3. Остается 2.
5. Разбиваем 1-ую. Остается 1. (я специально остановился именно на этом пункте, а не на предыдущем). Здесь останавливаемся. Потому что нужно разбивать каждую 4-ую, а у нас банок меньше.
Итак имеем 1 банку и число 3 (последний раз разбивали каждую 3-ю), идем обратно:
- 1+1=2 (это обратная операция п.5). Т.е. наша банка после этой операции стала второй
- Т.к. разбивали каждую 3-ю, а наша оставшаяся банка только 2-я, то она и останется 2-ой.
- 2+1=3 (это обратная операция п.3). Т.е. наша банка после этой операции стала второй
- Т.к. разбивали каждую 2-ую банку, а наша банка 3, то наша банка становится 5.
- 5+1=6 (это обратная операция п.1)
Ответ: 6.
 
Текущее время: 07:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru