|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
20.12.2016, 14:38 | #1 |
Форумчанин
Регистрация: 05.11.2015
Сообщений: 167
|
Долгая работа программы
Здравствуйте
Нужна ваша помощь Создал программу, но работает одна ну слииишком долго Дан файл с разбросанными по нему числами, числа могут быть до 10^18. Нужно вывести в выходной файл сумму цифр всех тех чисел в обратном порядке. longint не вмещает 10^18, поэтому воспользовался строками Читал каждую строку файла, искал там числа, когда находил, считал сумму и кидал в массив Вышло следующее Код:
Почему так? Последний раз редактировалось dimon_snake; 20.12.2016 в 14:40. |
20.12.2016, 14:50 | #2 |
Забанен
Форумчанин Подтвердите свой е-майл
Регистрация: 01.11.2006
Сообщений: 420
|
int64 не устраивает?
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
|
20.12.2016, 15:06 | #3 |
Форумчанин
Регистрация: 05.11.2015
Сообщений: 167
|
А в паскале такое есть?
|
20.12.2016, 15:10 | #4 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
а зачем нам вообще числа ЕСЛИ нужны нам исключительно ЦИФРЫ (то бишь ОТДЕЛЬНЫЕ символы строки из заданного и фиксированного множества).
Цитата:
Код:
или надо ВКЛЮЧАТЬ другие кодировки чисел ($0ABCFF), а КАКИЕ цифры тогда надо считать?
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 20.12.2016 в 15:18. |
|
20.12.2016, 15:14 | #5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
dimon_snake, какой у Вас Паскаль?
Почему в программе задан массив на 10000 элементов, в файле не может быть больше чисел? Есть ограничения? Приведите точную формулировку задания. и дайте пример входного файла (запаковать в архив, потом на сайте - Расширенный режим, управление вложениями, прикрепить файл). |
20.12.2016, 15:14 | #6 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
Похоже, нужно сначала сумму последнего числа, потом сумму предпоследнего и т.д.
Читай файл не как текстовый, а как типизированный типа char, например. Или можно как бинарный открыть. Это позволит читать файл с конца, что избавит от необходимости хранить суммы в массиве (можно сразу писать результат в выходной файл). Если символ не цифра, то читаем файл дальше (идём ближе к началу), если цифра, то Код:
|
20.12.2016, 15:15 | #7 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
|
20.12.2016, 15:17 | #8 |
Форумчанин
Регистрация: 05.11.2015
Сообщений: 167
|
вы, наверное, не так поняли
нужно сначала найти сумму цифр каждого числа допустим дан файл с числами 1 2 12 34 нужно вывести суммы в обратном порядке -> 7 3 2 1 |
20.12.2016, 15:19 | #9 |
Форумчанин
Регистрация: 05.11.2015
Сообщений: 167
|
free pascal 2.6.4
а 10000 стоит, потому что... размер заданного файла не превышает 512 Кб Я не знал, сколько одно число весит, но думаю, там вряд ли будет больше 10000 чисел |
20.12.2016, 15:30 | #10 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Код:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 20.12.2016 в 15:44. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Очень долгая загрузка страницы | usa-1500 | PHP | 5 | 09.02.2014 15:14 |
Долгая прорисовка DBGridEh | Dozent | Компоненты Delphi | 0 | 02.08.2013 17:07 |
Долгая загрузка системы | Дмитрий-1 | Компьютерное железо | 13 | 24.05.2013 12:29 |
Долгая загрузка программы | Tulc | Помощь студентам | 4 | 20.11.2011 14:24 |
Долгая загрузка Windows XP sp3 | DJ HITMAN | Windows | 14 | 04.09.2010 00:49 |