Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Решение одной задачи
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Решал сегодня одну задачу (и кстати воспользовался типом данных из языка С++ что мне давеча посоветовали). На 8 тесте валится. Вероятно проблема с алгоритмом. Подскажите пожалуйста как бы её решали на языке С++ или С. Текущее решение (проблема с 8 тестом) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. PS Данная тема скорее относится к разделу Программирование, но в связи очередной недавней дискриминацией самого себя (подраздела Программирования) , больше не хочу задавать вопросов в том разделе. С другой стороны, я не сторонник строгой дифференциации, тем более, инструментом решения данной конкретной задачи является семейство языков С/С++ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 09:26 |
|
||
|
Решение одной задачи
|
|||
|---|---|---|---|
|
#18+
С проверками разберись. Сначала на ноль делишь, а потом проверяешь что s==0 Про div() тут как-раз прекрасный пример что не надо читаемостью жертвовать. Написал бы вместо него Код: plaintext 1. не накосячил бы с делением на ноль. Это бесконечный цикл Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 09:59 |
|
||
|
Решение одной задачи
|
|||
|---|---|---|---|
|
#18+
Раз уж ты за супер-мега оптимизаторство борешься, то Код: plaintext 1. и Код: plaintext 1. это разные операции для процессора. Есть отдельная команда процессора ( INC ) для увеличения на 1, она быстрее чем сложение ( ADD ), и сложение требует отдельного хранения второго слагаемого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 10:11 |
|
||
|
Решение одной задачи
|
|||
|---|---|---|---|
|
#18+
По первому замечанию согласен, рефакторинг Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Бесконечного цикла, как мне кажется, быть не должно.. Может что-то не учёл, но такой контрпример не могу подобрать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 10:18 |
|
||
|
Решение одной задачи
|
|||
|---|---|---|---|
|
#18+
Dima TЕсть отдельная команда процессора ( INC ) для увеличения на 1, она быстрее чем сложение ( ADD ), и сложение требует отдельного хранения второго слагаемого. Я думаю, что и в этом случае компилятор умнее программиста и выберет то что быстрее )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 10:18 |
|
||
|
Решение одной задачи
|
|||
|---|---|---|---|
|
#18+
Дмитрий, просто Код: plaintext 1. смотрится красивее чем унарный инкремент :) Но я исправил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 10:20 |
|
||
|
Решение одной задачи
|
|||
|---|---|---|---|
|
#18+
SashaMercury, За goto внутрь if надо отрывать руки. Не говоря уже о том, что goto тут нафиг не нужен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 10:21 |
|
||
|
Решение одной задачи
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskySashaMercury, За goto внутрь if надо отрывать руки. Не говоря уже о том, что goto тут нафиг не нужен. Дело в том, что вы конечно в чём то правы, но мне захотелось посмотреть как будет выглядеть код с goto :) Например, недавно я увидел код Дмитрия следующего вида Код: plaintext 1. 2. 3. И хотя ранее, я никогда не использовал такую стилистику в своём коде, мне понравилось, потому что я увидел как это выглядит. А теперь использую. Вот и сейчас захотел посмотреть :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 10:26 |
|
||
|
Решение одной задачи
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyЯ думаю, что и в этом случае компилятор умнее программиста и выберет то что быстрее )) Чего тут думать, проверить просто: Код: plaintext 1. 2. 3. 4. 5. MS VC 2008 Express. Сборка Release c дефолтными настройками оптимизации Не особо умный :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 10:27 |
|
||
|
Решение одной задачи
|
|||
|---|---|---|---|
|
#18+
Dima T, В Express ограничен уровень оптимизаций, так что этот пример ни о чем не говорит. А например gcc генерит одинаковый код для +=1 и ++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 10:36 |
|
||
|
Решение одной задачи
|
|||
|---|---|---|---|
|
#18+
SashaMercury Код: plaintext 1. 2. 3. 4. 5. вместо goto exit рука не поднялась написать return -1? Забудь про goto, особенно в таком извращенном применении. SashaMercuryБесконечного цикла, как мне кажется, быть не должно.. А если подумать головой? Не буду подсказывать, сам догадайся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 10:36 |
|
||
|
Решение одной задачи
|
|||
|---|---|---|---|
|
#18+
SashaMercuryмне понравилось, потому что я увидел как это выглядит. А теперь использую. Ну кому-то и бухать и колоться нравится. Но это не повод )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 10:39 |
|
||
|
Решение одной задачи
|
|||
|---|---|---|---|
|
#18+
Глупый вопрос - чему будет равно t на выходе из Код: plaintext 1. если d.quot перед входом в цикл =0? И с какой стати этому циклу вообще завершаться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 10:42 |
|
||
|
Решение одной задачи
|
|||
|---|---|---|---|
|
#18+
SashaMercury, goto можно применять только если в функции есть нетривиальный завершающий код, который надо вызывать из разных веток кода. Все остальные варианты goto - бессмысленны и вредны. Схема использования такая: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 10:44 |
|
||
|
Решение одной задачи
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyDima T, В Express ограничен уровень оптимизаций, так что этот пример ни о чем не говорит. А например gcc генерит одинаковый код для +=1 и ++. Говорит что все компиляторы разные. Полной версии MS VC нет чтобы сравнить. Хотя тот же экспрес оптимизирует такую конструкцию Код: plaintext 1. 2. 3. 4. 5. 6. И вообще не оптимизирует div() Код: plaintext 1. 2. 3. 4. Саш, div() это тормоз, по крайней мере в MSVC Express ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 10:49 |
|
||
|
Решение одной задачи
|
|||
|---|---|---|---|
|
#18+
SashaMercuryНапример, недавно я увидел код Дмитрия следующего вида Код: plaintext 1. 2. 3. И хотя ранее, я никогда не использовал такую стилистику в своём коде, мне понравилось, потому что я увидел как это выглядит. А теперь использую. Вот и сейчас захотел посмотреть :) Это основы. Причем любого языка, а не только С. Три вида циклов: for(), while() и do ... while() Если плохо понимаешь как они работают - потрать время на изучение. while() работает так Код: plaintext 1. 2. 3. 4. 5. 6. SashaMercuryБесконечного цикла, как мне кажется, быть не должно.. Может что-то не учёл, но такой контрпример не могу подобрать Весь код не посмотрел сразу, в твоем случае не зациклится потому что цикл никогда не выполнится, т.к. все варианты где d.quot == 0 у тебя отсекают предварительные проверки. Т.е. ты написал ненужный кусок кода. Тоже косяк, т.к. зачем-то ты его писал. PS В суть алгоритма не вдумывался, просто указал на очевидные ошибки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 11:59 |
|
||
|
Решение одной задачи
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyЗа goto внутрь if надо отрывать руки.каждый начинающий программист должен понаступать на все старые грабли, они ведь так удобно лежат ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 12:04 |
|
||
|
Решение одной задачи
|
|||
|---|---|---|---|
|
#18+
Dima TЭто бесконечный цикл Код: plaintext 1. 2. 3. 4. с чего бы? d.quot целое ведь. а вот эта конструкция бессмыссленна: Код: plaintext 1. ведь только что мы добились того, чтобы d.quot стало равным 0, оно никогда не сможет стать равным 1 ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 12:11 |
|
||
|
Решение одной задачи
|
|||
|---|---|---|---|
|
#18+
egorychс чего бы? d.quot целое ведь. 0 / 2 сколько будет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 12:29 |
|
||
|
Решение одной задачи
|
|||
|---|---|---|---|
|
#18+
SashaMercuryкак бы её решали на языке С++ или С. Я бы сначала проверил и отсёк краевые условия: Код: sql 1. 2. 3. 4. Потом я бы воспользовался следующим алгоритмом: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Тебе, как математику, должно быть очевидно как он работает. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 12:31 |
|
||
|
Решение одной задачи
|
|||
|---|---|---|---|
|
#18+
Dima Tegorychс чего бы? d.quot целое ведь. 0 / 2 сколько будет?нормально я затупил, качественно прошу прощения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 12:42 |
|
||
|
Решение одной задачи
|
|||
|---|---|---|---|
|
#18+
А по здравому размышлению алгоритм сводится к следующему? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 13:48 |
|
||
|
Решение одной задачи
|
|||
|---|---|---|---|
|
#18+
Ммм.... primes... вкуснятина. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 16:50 |
|
||
|
Решение одной задачи
|
|||
|---|---|---|---|
|
#18+
maytonprimes... вкуснятина. А без них в одну секунду не уложиться на верхнем конце диапазона. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 17:32 |
|
||
|
Решение одной задачи
|
|||
|---|---|---|---|
|
#18+
Почитал условия. В принципе задача сводится к разложению частного двух чисел на простые множители, а затем эти множители надо сложить. Мой вариант Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 17:49 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=49&tid=2019045]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
26ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 137ms |

| 0 / 0 |
