Нужна программа на pascal Современные компьютеры могут выполнять арифметические действия с достаточно большими целыми числами (максимальное число целого типа 18446744073709551615), а всего 20 лет назад диапазон был ограничен 65...

Нужна программа на pascal Современные компьютеры могут выполнять арифметические действия с достаточно большими целыми числами (максимальное число целого типа 18446744073709551615), а всего 20 лет назад диапазон был ограничен 65536, что меньше в несколько сотен триллионов раз (10 в 14 степени раз). Но как быть, если нужно выполнить арифметические операции над числами, разрядность которых больше 20 (т.е. число будет больше, чем 18446744073709551615)? Один из способов, это представить число в виде массива, элементы которого цифры данного числа. Напишите программу для поиска максимального из трех чисел, состоящих из 20 разрядов. Входные данные: Три числа, перечисленные через пробел. Разрядность каждого не более 25. Числа не равны. Выходные данные: Наибольшее из трех заданных чисел. ПРИМЕР: Входные данные: 1234 12345678901234567890 123123123123123 Выходные данные: 12345678901234567890 Входные данные: 32345678901234567890 12345678901234561111 12345678901234567890 Выходные данные: 32345678901234567890
Гость
Ответ(ы) на вопрос:
Гость
Решение, использующее указанный способ, находится во вложенном файле. Хочу предупредить: программа была написана в среде PascalABC.NET, и в каких-то других средах массивы могут вести себя не совсем правильно, т.е. выдавать ошибку. В этом случае попробуйте изменить строку с объявлением n на "n:array[1..3] of array[0..24] of byte;", убрать строку "setlength(n[i],len[i]);" и все выражения  вида n[a][b] заменить на n[a,b].
Не нашли ответ?
Ответить на вопрос
Похожие вопросы