Другие языки программирования и технологии

Величина переменных.Паскаль.Описание дальше.

В паскале переменная integer имеет максимальное значение 32767.Longint макс-2147483647.В одной задачи на олимпиаде мне попалось такое задание:Нужна вывести символ на n месте,в определённой последовательности символов.Значение n не должно превышать 2 в двадцать шестой степени.Так вот,как мне реализовать,например,это программу,если я хочу ввести значение n=85671239984,если длина всей строки символов превышает 67 лямов.(Сама программа у меня есть,мне нужен именно этот момент)Конечно же,паскаль начинает ругаться,пытался составить через строки,тоже ругается,понятное дело,так как макс длина строки,это 255 символов.Подскажите,может,я где-то не так подумал....
Обычно это значение вычисляется путем хитрых вычислений. Как раз это и есть суть олимпиадных задач.
К примеру есть строка, которая строится путем прибавления самой к себе и добавлением очередного символа из алфавита. Итого получается aabaabcaabaabcd и так далее. В общем, по моему в районе 80м символов. Нужно по координате сказать символ.
Алгоритм решения - ищем в разных направлениях границы непрерывных последовательностей букв и собственно потом на основе этого вычисляем нужный символ.
Кирилл Туров
Кирилл Туров
6 852
Лучший ответ
Во-первых, в Паскале диапазоны значений целого и вещественного типов не определены, они зависят только от реализации. 2^26 – это всего-то 67108864, у меня PascalABC.NET шутя справляется с массивами такого размера. Кстати, длина строки действительно ограничена 255 символами, но не длина символьного массива, а если ты не используешь специфические для строк операции, тебе годится и символьный массив.
Turbo Pascal – 16-и битный, там размер массива, насколько помню, ограничен 65536 байтами. В скобках замечу, что и в Turbo Pascal можно выкрутиться через динамические массивы, хотя проще просто использовать файлы. Но первое, что надо спросить – это какой именно компилятор Паскаля используется в олимпиаде, и уже от этого отплясывать. Хотя вообще странно было бы использовать в олимпиаде компиляторы двадцатилетней давности разработки - в вычислительной технике это почти вечность - но всё бывает ;)