|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.02.2012, 20:48 | #1 |
Пользователь
Регистрация: 22.02.2012
Сообщений: 15
|
acm.timus 1688
1688 Team.GOV!
Ребят помогите решить задачку крашится на 11 тесте понял из за чего Код:
2000 3 2000 2000 2001 получаем 1999 4 и вывод Team.GOV! А должно Free after 3 times. Сижу запутался как место 4 получить 0.666(6)+0.666(6) И если можно подскажите как Значение переменной заморозить в цыкле P.S. Да да на goto не смотрите не знал как заморозить значение переменной название темы немогу сменить Последний раз редактировалось Sega_AS; 22.02.2012 в 21:34. |
23.02.2012, 17:46 | #2 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
вы используете div => получаете целые числа, отбрасывая "копейки", которые могут образовывать "рубли."
Код:
а на счет заморозки : если вы уже всё сосчитали то зачем вам тратить время? просто Break Последний раз редактировалось Poma][a; 23.02.2012 в 17:49. |
23.02.2012, 23:08 | #3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
никаких делений!
нужно число N умножить на 3 - получите требуемую сумму, по достижении (превышении которой ) нужно выдавать ответ и выходить из цикла (завершать программу). например, если сумма n=1666 то после умножения её на 3 получаем 4998 складываем в цикле 1) 2000 < 4998 тогда следующее 2) 2000 + 1024 = 3024 < 4998 тогда следующее 3) 3024 + 900 = 3924 < 4998 тогда следующее 4) 3924 + 1156 = 5080 > 4998 ! ДА! вывести ответ 4 раза и прервать работу если дошли до конца и не набрали нужную сумму - выдать "Team.GOV!" |
23.02.2012, 23:21 | #4 | |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
Serge, а почему
Цитата:
у меня с ними всё пашет, даже очень хорошо... |
|
24.02.2012, 08:55 | #5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
верю!
я предложил отказать от делений исключительно с точки зрения красоты (в коде остаётся только суммирование) и быстродействия: мало того, что сама по себе операция деления занимает больше тактов, так и ещё приходится выполнять её в цикле (ну, представьте, например, что речь идёт о нескольких ТЫСЯЧАХ (до 3-х тысяч) обедов по одному рублю. Кроме того, можно отказаться от использования вещественного типа данных (а это ещё одни минус к точности и быстродействию). а ведь алгоритм поиска решения при этом (при отказе от деления) ВООБЩЕ не изменяется! Т.е. выигрыш - на лицо, минусов я не вижу, так объясните почему не решить задачу чуть-чуть красивее и эффективнее?!! вот так примерно будет выглядеть ПОЛНЫЙ текст программы: Код:
|
25.02.2012, 15:28 | #6 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
Serge, было ощущение что вы приняли мое решение в штыки, как будто там была ошибка, либо что еще. А поскольку автор темы предложил решение с деление, то я лишь исправил предложенный вариант. А на счет правильности и эффективности вашего алгоритма спору нет, он лучше моего.
|
25.02.2012, 23:35 | #7 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Просто, если я вижу, что есть два варианта решения и один из них ЛУЧШЕ, тогда я не понимаю, почему нужно выбирать ХУДШИЙ вариант (хотя и работоспособный)! а то, что Вас вариант с делением рабочий, я не спорил, и даже отметил это постом выше.. ладно. будем считать, что разобрались. я считаю, что тему можно считать закрытой... |
|
26.02.2012, 21:49 | #8 | |
Пользователь
Регистрация: 22.02.2012
Сообщений: 15
|
Спасибо
Цитата:
Подправил ваше под условие обязательно надо считать все данные а потом только вывести Free after X times. Код:
Буду счас через N*3 Первая проходила до 11 теста и там не работала с 2000 3 а если изменинить div на / чтобы оставались 0.6666(6) то зависала на 3 тесте поэтому по логике легче всего решить через N*3 Последний раз редактировалось Sega_AS; 26.02.2012 в 22:15. |
|
26.02.2012, 21:55 | #9 |
Пользователь
Регистрация: 22.02.2012
Сообщений: 15
|
3 тест......
Код:
Последний раз редактировалось Sega_AS; 26.02.2012 в 22:21. |
27.02.2012, 14:25 | #10 |
Пользователь
Регистрация: 22.02.2012
Сообщений: 15
|
Понял немного подправил все робит...
Всем спасибо Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
acm олимпиада | _rofl | Общие вопросы по Java, Java SE, Kotlin | 1 | 06.04.2011 16:19 |
ACM | Аля-Улю | Общие вопросы .NET | 0 | 25.04.2010 13:35 |
acm.timus.ru | ИльяМалиновский | Свободное общение | 12 | 28.12.2009 18:36 |
Задачка с сайта acm.timus.ru | phpcreator | Помощь студентам | 9 | 17.10.2009 15:19 |