0 / 0 / 0
Регистрация: 24.01.2016
Сообщений: 17
|
||||||
1 | ||||||
ускорение времени выполнения программы28.01.2016, 20:10. Показов 2655. Ответов 16
Метки нет (Все метки)
здравствуйте. решал олимпиадную задачу:
...Он берет произвольное положительное число А и выписывает на доске арифметическую прогрессию с первым членом равным А и разницей, равной также А, то есть имеем последовательность А, А + А, А + 2А, а + 3А, .... Степана интересует первое число данной последовательности, которое является полным кубом некоторого натурального числа. Степан доказал, что для любого натурального числа А в описанной выше арифметической прогрессии существует полный куб некоторого натурального числа. Например, первый член арифметической прогрессии 2, тогда должны выписать на доске последовательность 2, 4, 6, 8, ... Четвертый член этой арифметической прогрессии является полным кубом числа 2 (8 = 23). Напишите программу, которая для заданного числа А, определяет минимальное количество членов арифметической прогрессии, которые нужно выписать на доске, чтобы среди них был полный куб некоторого натурального числа. Входные данные: Единственная строка входного файла содержит одно целое число А (1 ≤ А ≤ 109). Выходные данные: Выходной файл должен содержать одно целое число - минимальное количество членов арифметической прогрессии, которые нужно выписать на доске, чтобы среди них был полный куб. Пояснение: Первый пример: четвертый член этой арифметической прогрессии (2, 4, 6, 8, ...) является полным кубом числа 2 (8 = 2^3). Другой пример: второй член этой арифметической прогрессии (4, 8, ...) является полным кубом числа 2 (8 = 2^3). Третий пример: первый член этой арифметической прогрессии (125, ...) является полным кубом числа 5 (125 = 5^3). я написал такой код:
какие есть способы ускорить? надеюсь получить помощь с вашей стороны)) спасибо за внимание.
0
|
28.01.2016, 20:10 | |
Ответы с готовыми решениями:
16
Подсчёт времени выполнения программы Контроль времени выполнения программы Полиморфизм времени выполнения/времени компиляции Ускорение программы: сравнивание 4-х столов с пятым |
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
|
|
28.01.2016, 20:35 | 2 |
нужно больше конфликтов имен...
это бред искать все числа и их кубы на отрезке, мне кажется что быстрей будет просто брать корень в самой функции. Если уже для такого способа, то юзай дерево, что ли Добавлено через 2 минуты точно? что-то я не вижу еще одного цикла для проверки всех чисел из файла.
1
|
0 / 0 / 0
Регистрация: 24.01.2016
Сообщений: 17
|
|
28.01.2016, 21:08 [ТС] | 3 |
рабочий точно
извините, я не совсем понял зачем ещё один цикл? в файле ведь одно число
0
|
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
|
|
28.01.2016, 21:10 | 4 |
ну я весь вопрос не читал, и предположил что там набор из нескольких тестов.
но если там всего один тест, то зачем делать минимум 10000 операций, еще до начала поиска? просто ищи корень.
1
|
0 / 0 / 0
Регистрация: 24.01.2016
Сообщений: 17
|
||||||
28.01.2016, 21:48 [ТС] | 5 | |||||
спасибо Вам большое
очень помогли Добавлено через 37 минут если вас правильно понял, то
вы уж извините, совсем новичок
0
|
Dimension
594 / 462 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
|
|
28.01.2016, 22:08 | 6 |
0
|
0 / 0 / 0
Регистрация: 24.01.2016
Сообщений: 17
|
|
28.01.2016, 22:14 [ТС] | 7 |
1. она на украинском, и я перевёл всё, кроме первых двух предложений, которые никак не влияют на решение задачи.
2. не могу кинуть ссылку по причине того, что я решаю эту задачу в закрытом тренировочном туре, логин и пароль для доступа даются классным руководителем... если, конечно , важно, то могу заскринить
0
|
Dimension
594 / 462 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
|
|
28.01.2016, 22:24 | 8 |
Prolamer, думаю ваш скрин не сможет код проверить ,хотя бы ограничение по времени напишите
0
|
0 / 0 / 0
Регистрация: 24.01.2016
Сообщений: 17
|
|
28.01.2016, 22:30 [ТС] | 9 |
0
|
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
|
||||||
28.01.2016, 22:58 | 10 | |||||
1
|
Dimension
594 / 462 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
|
||||||
29.01.2016, 01:28 | 11 | |||||
Сообщение было отмечено Prolamer как решение
Решение
не 109 а 109
проверьте
1
|
0 / 0 / 0
Регистрация: 24.01.2016
Сообщений: 17
|
|
29.01.2016, 09:39 [ТС] | 13 |
Dimension,
спасибо Вам большое)) вот результат, программа работает достаточно быстро, а с остальным попытаюсь разобраться сам к сожалению, я не полностью понимаю ваш код, но, думаю, это из-за моей неопытности
0
|
0 / 0 / 0
Регистрация: 24.01.2016
Сообщений: 17
|
|
29.01.2016, 09:43 [ТС] | 14 |
спасибо всем большое!
0
|
Dimension
594 / 462 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
|
||||||
29.01.2016, 10:47 | 15 | |||||
Prolamer, там ошибки есть в коде ,и последние тесты из-за переполнения не проходят
1
|
0 / 0 / 0
Регистрация: 24.01.2016
Сообщений: 17
|
|
29.01.2016, 13:50 [ТС] | 16 |
такие вот ошибки в новом коде:
main.cpp:55: ошибка: 'i' does not name a type for (auto i : ans) ^ main.cpp:59: ошибка: expected ';' before 'return' return 0; ^ main.cpp:59: ошибка: expected ')' before 'return' main.cpp:59: ошибка: expected primary-expression before 'return'
0
|
Dimension
594 / 462 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
|
||||||
29.01.2016, 14:00 | 17 | |||||
вместо 55 строки
1
|
29.01.2016, 14:00 | |
29.01.2016, 14:00 | |
Помогаю со студенческими работами здесь
17
Оптимизация времени выполнения Ошибка времени выполнения. Ошибка времени выполнения Измерение времени выполнения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |