Олимпиадная информатика - 2010

Разбор и решение задач муниципального уровня 2010-11 года

Задача «A-B»

Требуется найти разность между неотрицательными числами А и В. Входные данные Во входном файле INPUT.TXT в двух строках записаны два неотрицательных целых числа А и В, не превышающие 10200 (десять в степени 200). Выходные данные В выходной файл OUTPUT.TXT выведите значение А-В.

INPUT.TXT
7 5
OUTPUT.TXT
2

посмотреть текст программы здесь

Разбор задачи №5 "A-B"
предложено Песковым Аркадием Геннадьевичем, МОУ «Сюкеевская средняя общеобразовательная школа»

Камско-Устьинского муниципального района РТ

Задача на «длинную» арифметику. Нужно выполнить действие с числами, записанными большим количеством цифр.

В данном случае до 200 знаков, что намного превосходит размерность стандартных типов. В этом случае производим действия по разрядам числа, используя стандартные алгоритмы действий с многозначными числами. Храним отдельные компоненты не как число, а как строку символов или массив однозначных чисел.

Как пример при решении данной задачи рассмотрим применение в «длинной» арифметике массивов. Число будем хранить в массиве с индексами от 0 до числа цифр в числе. Причем, в элементе с индексом 1 будем хранить цифру единиц, с индексом 2 – цифру сотен, с индексом 3 – цифру тысяч и т.д. Чтобы не производить действия с лидирующими нулями будем хранить число знаков в числе в элементе массива с индексом ноль.

Удобно такие массивы объявить как новый тип и для каждого действия ввести специальную процедуру или функцию.

При решении этой задачи потребуются такие действия: ввод «длинного» числа, сравнение 2 «длинных» чисел, их вычитание и запись «длинного» числа (вывод результата).

Hosted by uCoz