Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> методы проверки или иные способы, конфеты с коробки 
:(
    Опции темы
Swit
Дата 28.10.2005, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 27.9.2005

Репутация: нет
Всего: нет



Игрок кот. берет последние конфеты, съедает все свои конфеты, а проигравший свои конфеты возвращает обратно в коробку

входные данные:

количество конфет N (1<=N<=100)

максимальное кол-во конфет кот. может взять за один ход каждый игрок M (1<=M<=100, M<=N)

выходные данные:

В выходной файл следует вывести единственное число - максимальное кол-во конфет, которое может съесть игрок который начал достовать конфеты первым.

т.е. смысл такой. Я ввожу значения общего кол-ва конфет к примеру 13 и по две конфеты на рыло. в итоге у первого игрока который начал брать первым и вытащил последнюю конфету в желудке оказывается 7 конфет. Но как организовать это программно при вводе различных значений ведь первый игрок может последние конфеты и не забрать и в итоге получает 0. к примеру значения 12 и 3 в итоге второй забирает последние 3 конфеты а первый остается нисчем.

Вобщем подскажите методы проверки или иные способы.
PM MAIL   Вверх
_hunter
Дата 28.10.2005, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



проверки чего? чтобы при 3-х доступных конфетах и 2-х разрешенных нельзя было забрать больше, чем разрешено?
тогда так: if ( hochy_zabrat > mozno_zabrat ) hochy_zabrat = mozno_zabrat;


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Swit
Дата 28.10.2005, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 27.9.2005

Репутация: нет
Всего: нет



_hunter На всякий случай приведу саму задачу.


Двум братьям Саньку и Вовану принесли коробку с конфетами. Чтобы поделить конфеты между собой они придумали игру, суть которой сводится к следующему. Игроки поочередно берут себе из коробки некоторое (ненулевое) количество конфет. Это кол-во не должно превышать некоторого предельного числа. Игрок, кот. берет последние конфеты, съедает все свои конфеты, а проигравший свои конф. возвращает обратно в коробку. После этого игра продолжается и первым "ходит" игрок, оставшийся голодным после предыдущего раунда. Игра продолжается до тех пор, пока в коробке не останется ни одной конфеты . Цель игры -съесть как можно больше конфет.
Моя задача определить какое максимальное кол-во конфет может оказаться в животе у Санька, если он начинает первым и оба брата придерживаются оптимальной для себя стратегии.

Входные данные и выходные описаны выше.

Пример как должно быть при вводе общего 5 и максимального 2:

input.txt output.txt
5 2 3

Добавлено @ 14:48
тройка немного сместилась короче она под output.txt
PM MAIL   Вверх
_hunter
Дата 28.10.2005, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



т.е. ты хочеш чтобы тебе программу написали? тогда ты не в тот раздел зашел -- нужно в раздел помощи...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Swit
Дата 28.10.2005, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 27.9.2005

Репутация: нет
Всего: нет



_hunter Вот блин ругатся хочется. Хотел в P/S написать что я не прошу решения но не написал и получил от тебя эти слова "ты хочеш чтобы тебе программу написали? тогда ты не в тот раздел зашел -- нужно в раздел помощи"

Уверяю тебя мне твое решение не нужно я и сам в состоянии это сделать. Просто я хочу понять сам алгоритм как моя прога дожна работать.
PM MAIL   Вверх
_hunter
Дата 28.10.2005, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



раздели процесс на ходы и на игры. я, например, так и не понял в каком случае игрок считается проигравшим и кто будет последним брать. тот, кто не первым?


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Swit
Дата 28.10.2005, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 27.9.2005

Репутация: нет
Всего: нет



Из вышеописанного условия задачи мне представляется это в таком виде:
Первым всегда будет брать конфеты Санек.
Вводим значения (общее кол-во конфет в коробке - 10) и ( по скольку можно брать, по 2)

1) итак из этих 10 первым берет 2 Санек остается 8;

2) далее из этих 8 две берет Вован остается 6;

3) опять берет Саня от этих 6 остается 4;

4) берет Вован от 4 остается 2;

5) и последние две конфеты забирает Саня значит он жрет все свои конфеты которые насабирал, т.е. в output.txt будет записано значение 6.


Или такой пример:

общее кол-во - 15;
можно взять - 4;

1) опять берет Саня 15-4=11;
2) Вова 11-4=7;
3) Саня 7-4=3;
4) и последние 3 забирает Вован в итоге в выходной файл output.txt будет записано значение 0 т.к. по условию Саня должен положить конфеты обратно в коробку т.к. он вытащил конфеты не последним.

Но примеров может быть большое кол-во так как в условии оговорено что Начальное кол-во конфет в коробке можно задать N (1<=N<=100) а максимальное кол-во конфет кот. можно взять M (1<=M<=100, M<=N)

Ты можешь спросить почему это Вован забрал последние 3 конфеты если по правилу брать можно только по 4. Опять же в условии это не оговарено, так что я это понял так: если остаток в коробке < чем положено забирать, то забирает тот чья очередь.

Еще ты конечно можешь сказать или подумать конечно что это не задача а какае-то х...ня. СОГЛАСЕН. Не я ее придумал. Моя проблема в том чтобы ее решить.






PM MAIL   Вверх
_hunter
Дата 28.10.2005, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



простейший вариант -- использовать рекурсию
пишеш функцию, которая принимает число конфет, сколько берем, кто берет
и вызываеш ее в цикле от 0 до сколько_можно_брать и третьим пареметром передаеш 1
в функции отнимаеш от общего числа переданное ( и эту разницу передаеш дальше ) опять в цикле вызываеш сам себя и передаеш уже -1 ( т.е. просто в функции третий параметр множиш на -1 )
и так далее... пока доступных конфет не станет 0. после этого возвращаеш третий параметр и по ниму судиш кто выиграл


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Swit
Дата 28.10.2005, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 27.9.2005

Репутация: нет
Всего: нет



Понятно, буду пробовать, спасибо за совет!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0729 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.