168 / 90 / 44
Регистрация: 22.09.2019
Сообщений: 390
|
||||||
1 | ||||||
Палиндромы и в 10й с/с, и в 2й с/с26.02.2020, 21:44. Показов 1050. Ответов 9
Доброго времени суток! Понадобилось написать программу, которая вычисляет все палиндромы и в десятичной, и в двоичной системе до некоторого максимального значения. Конкретно тут предел 1е6. Нужно использовать строки типа string(не С-строки!) для хранения чисел. Программа рабочая, всё как надо. Меня смущает её время выполнения. В среднем около 3,8 с. На С-строках прога с подобным алгоритмом работает гораздо быстрее. Предложите свои идеи для оптимизации скорости выполнения данного решения. От меня спасиба и + в карму.
![]() Кликните здесь для просмотра всего текста
0
|
|
26.02.2020, 21:44 | |
Ответы с готовыми решениями:
9
Найти в заданном тексте, состоящем из n строк, все слова палиндромы и числа палиндромы Найти все числа-палиндромы, которые не больше 100, и их квадраты тоже палиндромы
Найти целые числа палиндромы, которые при возведении в квадрат также дают палиндромы (22^2=484) |
168 / 90 / 44
Регистрация: 22.09.2019
Сообщений: 390
|
|
26.02.2020, 21:55 [ТС] | 3 |
Verevkin, дословно: "Получить все натуральные числа
0
|
168 / 90 / 44
Регистрация: 22.09.2019
Сообщений: 390
|
|
26.02.2020, 22:30 [ТС] | 5 |
Собсна, никто не заставляет
![]() Понятное дело, что можно сделать другими способами гораздо быстрее. Суть задания в овладении навыков работы со строками))
0
|
194 / 151 / 44
Регистрация: 11.11.2019
Сообщений: 345
|
||||||
26.02.2020, 23:10 | 7 | |||||
![]() Решение
alo_wu, можно ускорить более чем в 2 раза, если переработать преобразование числа в строку
![]()
1
|
168 / 90 / 44
Регистрация: 22.09.2019
Сообщений: 390
|
|
26.02.2020, 23:39 [ТС] | 8 |
fao, Спасибо! Я не думал, что этот способ приведет к такому увеличению скорости работы. Стоило попробовать, прежде чем сюда писать
![]()
0
|
194 / 151 / 44
Регистрация: 11.11.2019
Сообщений: 345
|
||||||
26.02.2020, 23:55 | 9 | |||||
alo_wu, перераспределение памяти здесь будет возникать в тех случаях, когда очередной добавленный символ будет выводить строку за пределы ее capacity. Однако, таких перераспределений будет немного, т.к. числа не часто увеличивают количество разрядов. Чтобы вообще исключить перераспределение можно в том месте, где Вы объявляете строки, дописать:
0
|
случайный прохожий
2382 / 1599 / 550
Регистрация: 20.07.2013
Сообщений: 4,483
|
|
27.02.2020, 01:15 | 10 |
Можно глянуть тут (билдер): Найти простые числа, двоичная запись которых представляет собой симметричную последовательность нулей и единиц
0
|
27.02.2020, 01:15 | |
Помогаю со студенческими работами здесь
10
Ошибка в Опере 9.64. В 10й версии работает нормально. Ввод\вывод способами 9й , 10й функции 21h прерывания Установка - Установка 7й поверх 10й Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |