Разберём, как хранить и обрабатывать числа, которые не помещаются в стандартные типы данных. Начнём с базовых операций и дойдём до многошаговых алгоритмов.
№1 · ПРОПУСКИ
3 ПРОПУСКА · 1 БАЛЛ
1. Представление многоразрядного числа
Заполните пропуски в описании базового способа хранения многоразрядного числа.
Многоразрядное число хранят как массив отдельных цифр. Обычно цифры записывают в системе счисления с основанием , а перенос при сложении передают в следующий разряд. Младший разряд имеет индекс , если нумерация начинается с нуля, а порядок цифр при вычислениях часто используют от младшего разряда к .
№2 · КРОССВОРД
8 СЛОВ · 1 БАЛЛ
2. Термины хранения больших чисел
Разгадайте кроссворд по определениям, связанным с хранением и обработкой многоразрядных чисел.
12345678
По горизонтали
Позиция цифры в записи числа
Результат сложения
Номер элемента массива
Число, задающее систему счисления
По вертикали
Знак для записи числа
Переход избытка в следующий разряд
Плюс или минус перед числом
Упорядоченная последовательность элементов
№3 · МНОЖЕСТВЕННЫЙ ВЫБОР
1 ВОПРОС · 1 БАЛЛ
3. Сложение поразрядно
Какое действие выполняют при сложении двух цифр многоразрядных чисел, если сумма достигла основания системы счисления?
Заменяют обе исходные цифры нулями без переноса
Удаляют старший разряд результата
Записывают цифру единиц результата и передают перенос в следующий разряд
Умножают полученную сумму на основание системы счисления
№4 · ПРОПУСКИ
4 ПРОПУСКА · 2 БАЛЛА
4. Сложение двух массивов цифр
Заполните пропуски в описании алгоритма сложения двух неотрицательных чисел, представленных массивами цифр.
При сложении справа налево к цифрам двух чисел добавляют перенос из предыдущего разряда. В текущий разряд записывают остаток от деления суммы на , а новый перенос получают целочисленным делением суммы на . Если после обработки всех разрядов перенос не равен нулю, его добавляют в числа. Перед сложением числа выравнивают по .
№5 · КРОССВОРД
10 СЛОВ · 2 БАЛЛА
5. Операции над большими числами
Разгадайте кроссворд по определениям, связанным с алгоритмами выполнения арифметических операций над многоразрядными числами.
12345678910
По горизонтали
Изменение соседнего разряда при вычитании
Операция повторного сложения
Операция объединения значений
Результат умножения
По вертикали
Результат деления
Результат вычитания
Операция нахождения разности
Дополнительная единица следующего разряда
Часть результата деления, меньшая делителя
Позиция цифры в записи числа
№6 · МНОЖЕСТВЕННЫЙ ВЫБОР
1 ВОПРОС · 2 БАЛЛА
6. Умножение столбиком
Какой приём позволяет реализовать умножение многоразрядных чисел без встроенного типа для больших чисел?
Умножить только первые цифры чисел, а остальные дописать без изменений
Заменить умножение сравнением чисел и выбрать большее
Сложить все цифры обоих чисел и умножить полученные суммы
Умножать одно число на каждую цифру второго, сдвигать частичные результаты по разрядам и складывать их
+5 заданий в этом листе
Зарегистрируйтесь — и соберите свой рабочий лист по этой теме за минуту: заданий столько, сколько нужно.
№7 · ПРОПУСКИ
4 ПРОПУСКА · 2 БАЛЛА
7. Сравнение многоразрядных чисел
Заполните пропуски в алгоритме сравнения двух неотрицательных чисел, записанных массивами цифр.
Сначала сравнивают количество цифр в числах. Число с большим количеством цифр является . Если количество цифр одинаково, сравнение начинают со разряда и идут слева направо. При первом различии больше то число, у которого цифра в этом разряде . Если различий нет, числа .
№8 · КРОССВОРД
12 СЛОВ · 3 БАЛЛА
8. Алгоритмы и структуры многоразрядных вычислений
Разгадайте кроссворд по определениям. Используйте термины, которые применяются при проектировании алгоритмов обработки чисел произвольной длины.
123456789101112
По горизонтали
Операция последовательного нахождения частного
Область временного хранения данных
Число, на которое выполняют деление
Число, состоящее из произвольного количества цифр
Приведение записи к принятому виду
Конструкция для повторения действий
По вертикали
Значение, передаваемое в соседний разряд
Основной результат деления
Ненулевая часть результата деления
Позиция элемента в массиве
Одна позиция записи числа
Признак положительности или отрицательности числа
№9 · МНОЖЕСТВЕННЫЙ ВЫБОР
1 ВОПРОС · 4 БАЛЛА
9. Деление без встроенного большого типа
Какой алгоритм наиболее корректно реализует деление неотрицательного многоразрядного числа A на однозначный делитель d в десятичной системе?
Разделить только первую цифру A, а остаток приписать к частному без дальнейшей обработки
Идти справа налево и делить каждую цифру независимо от остальных, отбрасывая остатки
Сложить все цифры A, разделить сумму на d и записать результат одной цифрой
Идти слева направо, на каждом шаге образовывать число из текущего остатка и очередной цифры, вычислять цифру частного и новый остаток
№10 · ПРОПУСКИ
5 ПРОПУСКОВ · 4 БАЛЛА
10. Проверка и ускорение вычислений
Заполните пропуски в описании надёжной реализации операции над многоразрядными числами. Учитывайте корректность результата и эффективность алгоритма.
Перед вычислением входные данные проверяют на соответствие формату и удаляют незначащие . После сложения или умножения выполняют проверку результата другим способом, например сравнением с вычислением для небольших тестовых данных. Для ускорения умножения можно не выполнять действия с разрядами, равными . При работе с отрицательными числами отдельно хранят и модуль числа, а затем выбирают операцию по знакам. При делении обязательно контролируют условие: делитель не должен быть равен . Набор специально подобранных проверок называют .